github.com/docker/docker-ce@v17.12.1-ce-rc2+incompatible/components/cli/docs/reference/commandline/trust_sign.md (about)

     1  ---
     2  title: "trust sign"
     3  description: "The sign command description and usage"
     4  keywords: "sign, notary, trust"
     5  ---
     6  
     7  <!-- This file is maintained within the docker/cli GitHub
     8       repository at https://github.com/docker/cli/. Make all
     9       pull requests against that repo. If you see this file in
    10       another repository, consider it read-only there, as it will
    11       periodically be overwritten by the definitive file. Pull
    12       requests which include edits to this file in other repositories
    13       will be rejected.
    14  -->
    15  
    16  # trust sign
    17  
    18  ```markdown
    19  Usage:  docker trust sign [OPTIONS] IMAGE:TAG
    20  
    21  Sign an image
    22  
    23  Options:
    24        --help    print usage
    25        --local   force the signing of a local image
    26  
    27  ```
    28  
    29  ## Description
    30  
    31  `docker trust sign` adds signatures to tags to create signed repositories.
    32  
    33  `docker trust sign` is currently experimental.
    34  
    35  ## Examples
    36  
    37  ### Sign a tag as a repo admin
    38  
    39  Given an image:
    40  
    41  ```bash
    42  $ docker trust view example/trust-demo
    43  SIGNED TAG          DIGEST                                                             SIGNERS
    44  v1                  c24134c079c35e698060beabe110bb83ab285d0d978de7d92fed2c8c83570a41   (Repo Admin)
    45  
    46  Administrative keys for example/trust-demo:
    47  Repository Key:	36d4c3601102fa7c5712a343c03b94469e5835fb27c191b529c06fd19c14a942
    48  Root Key:	246d360f7c53a9021ee7d4259e3c5692f3f1f7ad4737b1ea8c7b8da741ad980b
    49  ```
    50  
    51  Sign a new tag with `docker trust sign`:
    52  
    53  ```bash
    54  $ docker trust sign example/trust-demo:v2
    55  Signing and pushing trust metadata for example/trust-demo:v2
    56  The push refers to a repository [docker.io/example/trust-demo]
    57  eed4e566104a: Layer already exists
    58  77edfb6d1e3c: Layer already exists
    59  c69f806905c2: Layer already exists
    60  582f327616f1: Layer already exists
    61  a3fbb648f0bd: Layer already exists
    62  5eac2de68a97: Layer already exists
    63  8d4d1ab5ff74: Layer already exists
    64  v2: digest: sha256:8f6f460abf0436922df7eb06d28b3cdf733d2cac1a185456c26debbff0839c56 size: 1787
    65  Signing and pushing trust metadata
    66  Enter passphrase for repository key with ID 36d4c36:
    67  Successfully signed docker.io/example/trust-demo:v2
    68  ```
    69  
    70  `docker trust view` lists the new signature:
    71  
    72  ```bash
    73  $ docker trust view example/trust-demo
    74  SIGNED TAG          DIGEST                                                             SIGNERS
    75  v1                  c24134c079c35e698060beabe110bb83ab285d0d978de7d92fed2c8c83570a41   (Repo Admin)
    76  v2                  8f6f460abf0436922df7eb06d28b3cdf733d2cac1a185456c26debbff0839c56   (Repo Admin)
    77  
    78  Administrative keys for example/trust-demo:
    79  Repository Key:	36d4c3601102fa7c5712a343c03b94469e5835fb27c191b529c06fd19c14a942
    80  Root Key:	246d360f7c53a9021ee7d4259e3c5692f3f1f7ad4737b1ea8c7b8da741ad980b
    81  ```
    82  
    83  ### Sign a tag as a signer
    84  
    85  Given an image:
    86  
    87  ```bash
    88  $ docker trust view example/trust-demo
    89  
    90  No signatures for example/trust-demo
    91  
    92  
    93  List of signers and their keys for example/trust-demo:
    94  
    95  SIGNER              KEYS
    96  alice               05e87edcaecb
    97  bob                 5600f5ab76a2
    98  
    99  Administrative keys for example/trust-demo:
   100  Repository Key:	ecc457614c9fc399da523a5f4e24fe306a0a6ee1cc79a10e4555b3c6ab02f71e
   101  Root Key:	3cb2228f6561e58f46dbc4cda4fcaff9d5ef22e865a94636f82450d1d2234949
   102  ```
   103  
   104  Sign a new tag with `docker trust sign`:
   105  
   106  ```bash
   107  $ docker trust sign example/trust-demo:v1
   108  Signing and pushing trust metadata for example/trust-demo:v1
   109  The push refers to a repository [docker.io/example/trust-demo]
   110  26b126eb8632: Layer already exists
   111  220d34b5f6c9: Layer already exists
   112  8a5132998025: Layer already exists
   113  aca233ed29c3: Layer already exists
   114  e5d2f035d7a4: Layer already exists
   115  v1: digest: sha256:74d4bfa917d55d53c7df3d2ab20a8d926874d61c3da5ef6de15dd2654fc467c4 size: 1357
   116  Signing and pushing trust metadata
   117  Enter passphrase for delegation key with ID 27d42a8:
   118  Successfully signed docker.io/example/trust-demo:v1
   119  ```
   120  
   121  `docker trust view` lists the new signature:
   122  
   123  ```bash
   124  $ docker trust view example/trust-demo
   125  SIGNED TAG          DIGEST                                                             SIGNERS
   126  v1                  74d4bfa917d55d53c7df3d2ab20a8d926874d61c3da5ef6de15dd2654fc467c4   alice
   127  
   128  List of signers and their keys for example/trust-demo:
   129  
   130  SIGNER              KEYS
   131  alice               05e87edcaecb
   132  bob                 5600f5ab76a2
   133  
   134  Administrative keys for example/trust-demo:
   135  Repository Key:	ecc457614c9fc399da523a5f4e24fe306a0a6ee1cc79a10e4555b3c6ab02f71e
   136  Root Key:	3cb2228f6561e58f46dbc4cda4fcaff9d5ef22e865a94636f82450d1d2234949
   137  ```
   138  
   139  ## Initialize a new repo and sign a tag
   140  
   141  When signing an image on a repo for the first time, `docker trust sign` sets up new keys before signing the image.
   142  
   143  ```bash
   144  $ docker trust view example/trust-demo
   145  No signatures or cannot access example/trust-demo
   146  ```
   147  
   148  ```bash
   149  $ docker trust sign example/trust-demo:v1
   150  Signing and pushing trust metadata for example/trust-demo:v1
   151  Enter passphrase for root key with ID 36cac18:
   152  Enter passphrase for new repository key with ID 731396b:
   153  Repeat passphrase for new repository key with ID 731396b:
   154  Enter passphrase for new alice key with ID 6d52b29:
   155  Repeat passphrase for new alice key with ID 6d52b29:
   156  Created signer: alice
   157  Finished initializing "docker.io/example/trust-demo"
   158  The push refers to a repository [docker.io/example/trust-demo]
   159  eed4e566104a: Layer already exists
   160  77edfb6d1e3c: Layer already exists
   161  c69f806905c2: Layer already exists
   162  582f327616f1: Layer already exists
   163  a3fbb648f0bd: Layer already exists
   164  5eac2de68a97: Layer already exists
   165  8d4d1ab5ff74: Layer already exists
   166  v1: digest: sha256:8f6f460abf0436922df7eb06d28b3cdf733d2cac1a185456c26debbff0839c56 size: 1787
   167  Signing and pushing trust metadata
   168  Enter passphrase for alice key with ID 6d52b29:
   169  Successfully signed docker.io/example/trust-demo:v1
   170  ```
   171  
   172  ```bash
   173  $ docker trust view example/trust-demo
   174  SIGNED TAG          DIGEST                                                             SIGNERS
   175  v1                  8f6f460abf0436922df7eb06d28b3cdf733d2cac1a185456c26debbff0839c56   alice
   176  
   177  List of signers and their keys for example/trust-demo:
   178  
   179  SIGNER              KEYS
   180  alice               6d52b29d940f
   181  
   182  Administrative keys for example/trust-demo:
   183  Repository Key:	731396b65eac3ef5ec01406801bdfb70feb40c17808d2222427c18046eb63beb
   184  Root Key:	70d174714bd1461f6c58cb3ef39087c8fdc7633bb11a98af844fd9a04e208103
   185  ```
   186