github.com/AliyunContainerService/cli@v0.0.0-20181009023821-814ced4b30d0/docs/reference/commandline/pull.md (about)

     1  ---
     2  title: "pull"
     3  description: "The pull command description and usage"
     4  keywords: "pull, image, hub, docker"
     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  # pull
    17  
    18  ```markdown
    19  Usage:  docker pull [OPTIONS] NAME[:TAG|@DIGEST]
    20  
    21  Pull an image or a repository from a registry
    22  
    23  Options:
    24    -a, --all-tags                Download all tagged images in the repository
    25        --disable-content-trust   Skip image verification (default true)
    26        --help                    Print usage
    27  ```
    28  
    29  ## Description
    30  
    31  Most of your images will be created on top of a base image from the
    32  [Docker Hub](https://hub.docker.com) registry.
    33  
    34  [Docker Hub](https://hub.docker.com) contains many pre-built images that you
    35  can `pull` and try without needing to define and configure your own.
    36  
    37  To download a particular image, or set of images (i.e., a repository),
    38  use `docker pull`.
    39  
    40  ### Proxy configuration
    41  
    42  If you are behind an HTTP proxy server, for example in corporate settings,
    43  before open a connect to registry, you may need to configure the Docker
    44  daemon's proxy settings, using the `HTTP_PROXY`, `HTTPS_PROXY`, and `NO_PROXY`
    45  environment variables. To set these environment variables on a host using
    46  `systemd`, refer to the [control and configure Docker with systemd](https://docs.docker.com/engine/admin/systemd/#http-proxy)
    47  for variables configuration.
    48  
    49  ### Concurrent downloads
    50  
    51  By default the Docker daemon will pull three layers of an image at a time.
    52  If you are on a low bandwidth connection this may cause timeout issues and you may want to lower
    53  this via the `--max-concurrent-downloads` daemon option. See the
    54  [daemon documentation](dockerd.md) for more details.
    55  
    56  ## Examples
    57  
    58  ### Pull an image from Docker Hub
    59  
    60  To download a particular image, or set of images (i.e., a repository), use
    61  `docker pull`. If no tag is provided, Docker Engine uses the `:latest` tag as a
    62  default. This command pulls the `debian:latest` image:
    63  
    64  ```bash
    65  $ docker pull debian
    66  
    67  Using default tag: latest
    68  latest: Pulling from library/debian
    69  fdd5d7827f33: Pull complete
    70  a3ed95caeb02: Pull complete
    71  Digest: sha256:e7d38b3517548a1c71e41bffe9c8ae6d6d29546ce46bf62159837aad072c90aa
    72  Status: Downloaded newer image for debian:latest
    73  ```
    74  
    75  Docker images can consist of multiple layers. In the example above, the image
    76  consists of two layers; `fdd5d7827f33` and `a3ed95caeb02`.
    77  
    78  Layers can be reused by images. For example, the `debian:jessie` image shares
    79  both layers with `debian:latest`. Pulling the `debian:jessie` image therefore
    80  only pulls its metadata, but not its layers, because all layers are already
    81  present locally:
    82  
    83  ```bash
    84  $ docker pull debian:jessie
    85  
    86  jessie: Pulling from library/debian
    87  fdd5d7827f33: Already exists
    88  a3ed95caeb02: Already exists
    89  Digest: sha256:a9c958be96d7d40df920e7041608f2f017af81800ca5ad23e327bc402626b58e
    90  Status: Downloaded newer image for debian:jessie
    91  ```
    92  
    93  To see which images are present locally, use the [`docker images`](images.md)
    94  command:
    95  
    96  ```bash
    97  $ docker images
    98  
    99  REPOSITORY   TAG      IMAGE ID        CREATED      SIZE
   100  debian       jessie   f50f9524513f    5 days ago   125.1 MB
   101  debian       latest   f50f9524513f    5 days ago   125.1 MB
   102  ```
   103  
   104  Docker uses a content-addressable image store, and the image ID is a SHA256
   105  digest covering the image's configuration and layers. In the example above,
   106  `debian:jessie` and `debian:latest` have the same image ID because they are
   107  actually the *same* image tagged with different names. Because they are the
   108  same image, their layers are stored only once and do not consume extra disk
   109  space.
   110  
   111  For more information about images, layers, and the content-addressable store,
   112  refer to [understand images, containers, and storage drivers](https://docs.docker.com/engine/userguide/storagedriver/imagesandcontainers/).
   113  
   114  
   115  ### Pull an image by digest (immutable identifier)
   116  
   117  So far, you've pulled images by their name (and "tag"). Using names and tags is
   118  a convenient way to work with images. When using tags, you can `docker pull` an
   119  image again to make sure you have the most up-to-date version of that image.
   120  For example, `docker pull ubuntu:14.04` pulls the latest version of the Ubuntu
   121  14.04 image.
   122  
   123  In some cases you don't want images to be updated to newer versions, but prefer
   124  to use a fixed version of an image. Docker enables you to pull an image by its
   125  *digest*. When pulling an image by digest, you specify *exactly* which version
   126  of an image to pull. Doing so, allows you to "pin" an image to that version,
   127  and guarantee that the image you're using is always the same.
   128  
   129  To know the digest of an image, pull the image first. Let's pull the latest
   130  `ubuntu:14.04` image from Docker Hub:
   131  
   132  ```bash
   133  $ docker pull ubuntu:14.04
   134  
   135  14.04: Pulling from library/ubuntu
   136  5a132a7e7af1: Pull complete
   137  fd2731e4c50c: Pull complete
   138  28a2f68d1120: Pull complete
   139  a3ed95caeb02: Pull complete
   140  Digest: sha256:45b23dee08af5e43a7fea6c4cf9c25ccf269ee113168c19722f87876677c5cb2
   141  Status: Downloaded newer image for ubuntu:14.04
   142  ```
   143  
   144  Docker prints the digest of the image after the pull has finished. In the example
   145  above, the digest of the image is:
   146  
   147      sha256:45b23dee08af5e43a7fea6c4cf9c25ccf269ee113168c19722f87876677c5cb2
   148  
   149  Docker also prints the digest of an image when *pushing* to a registry. This
   150  may be useful if you want to pin to a version of the image you just pushed.
   151  
   152  A digest takes the place of the tag when pulling an image, for example, to
   153  pull the above image by digest, run the following command:
   154  
   155  ```bash
   156  $ docker pull ubuntu@sha256:45b23dee08af5e43a7fea6c4cf9c25ccf269ee113168c19722f87876677c5cb2
   157  
   158  sha256:45b23dee08af5e43a7fea6c4cf9c25ccf269ee113168c19722f87876677c5cb2: Pulling from library/ubuntu
   159  5a132a7e7af1: Already exists
   160  fd2731e4c50c: Already exists
   161  28a2f68d1120: Already exists
   162  a3ed95caeb02: Already exists
   163  Digest: sha256:45b23dee08af5e43a7fea6c4cf9c25ccf269ee113168c19722f87876677c5cb2
   164  Status: Downloaded newer image for ubuntu@sha256:45b23dee08af5e43a7fea6c4cf9c25ccf269ee113168c19722f87876677c5cb2
   165  ```
   166  
   167  Digest can also be used in the `FROM` of a Dockerfile, for example:
   168  
   169  ```Dockerfile
   170  FROM ubuntu@sha256:45b23dee08af5e43a7fea6c4cf9c25ccf269ee113168c19722f87876677c5cb2
   171  MAINTAINER some maintainer <maintainer@example.com>
   172  ```
   173  
   174  > **Note**: Using this feature "pins" an image to a specific version in time.
   175  > Docker will therefore not pull updated versions of an image, which may include
   176  > security updates. If you want to pull an updated image, you need to change the
   177  > digest accordingly.
   178  
   179  
   180  ### Pull from a different registry
   181  
   182  By default, `docker pull` pulls images from [Docker Hub](https://hub.docker.com). It is also possible to
   183  manually specify the path of a registry to pull from. For example, if you have
   184  set up a local registry, you can specify its path to pull from it. A registry
   185  path is similar to a URL, but does not contain a protocol specifier (`https://`).
   186  
   187  The following command pulls the `testing/test-image` image from a local registry
   188  listening on port 5000 (`myregistry.local:5000`):
   189  
   190  ```bash
   191  $ docker pull myregistry.local:5000/testing/test-image
   192  ```
   193  
   194  Registry credentials are managed by [docker login](login.md).
   195  
   196  Docker uses the `https://` protocol to communicate with a registry, unless the
   197  registry is allowed to be accessed over an insecure connection. Refer to the
   198  [insecure registries](dockerd.md#insecure-registries) section for more information.
   199  
   200  
   201  ### Pull a repository with multiple images
   202  
   203  By default, `docker pull` pulls a *single* image from the registry. A repository
   204  can contain multiple images. To pull all images from a repository, provide the
   205  `-a` (or `--all-tags`) option when using `docker pull`.
   206  
   207  This command pulls all images from the `fedora` repository:
   208  
   209  ```bash
   210  $ docker pull --all-tags fedora
   211  
   212  Pulling repository fedora
   213  ad57ef8d78d7: Download complete
   214  105182bb5e8b: Download complete
   215  511136ea3c5a: Download complete
   216  73bd853d2ea5: Download complete
   217  ....
   218  
   219  Status: Downloaded newer image for fedora
   220  ```
   221  
   222  After the pull has completed use the `docker images` command to see the
   223  images that were pulled. The example below shows all the `fedora` images
   224  that are present locally:
   225  
   226  ```bash
   227  $ docker images fedora
   228  
   229  REPOSITORY   TAG         IMAGE ID        CREATED      SIZE
   230  fedora       rawhide     ad57ef8d78d7    5 days ago   359.3 MB
   231  fedora       20          105182bb5e8b    5 days ago   372.7 MB
   232  fedora       heisenbug   105182bb5e8b    5 days ago   372.7 MB
   233  fedora       latest      105182bb5e8b    5 days ago   372.7 MB
   234  ```
   235  
   236  ### Cancel a pull
   237  
   238  Killing the `docker pull` process, for example by pressing `CTRL-c` while it is
   239  running in a terminal, will terminate the pull operation.
   240  
   241  ```bash
   242  $ docker pull fedora
   243  
   244  Using default tag: latest
   245  latest: Pulling from library/fedora
   246  a3ed95caeb02: Pulling fs layer
   247  236608c7b546: Pulling fs layer
   248  ^C
   249  ```
   250  
   251  > **Note**: Technically, the Engine terminates a pull operation when the
   252  > connection between the Docker Engine daemon and the Docker Engine client
   253  > initiating the pull is lost. If the connection with the Engine daemon is
   254  > lost for other reasons than a manual interaction, the pull is also aborted.