Advisory: This site contains documentation for the v1.12 release candidate version of Docker Engine. For the Docker Engine v1.11 docs, see https://docs.docker.com/v1.11/. Docker for Mac and Docker for Windows are currently in Beta.
So far you’ve learned how to use the command line to run Docker on your local host. You’ve learned how to pull down images to build containers from existing images and you’ve learned how to create your own images.
Next, you’re going to learn how to use the Docker Hub to simplify and enhance your Docker workflows.
The Docker Hub is a public registry maintained by Docker, Inc. It contains images you can download and use to build containers. It also provides authentication, work group structure, workflow tools like webhooks and build triggers, and privacy tools like private repositories for storing images you don’t want to share publicly.
Docker itself provides access to Docker Hub services via the
push commands. This page will show you how these commands work.
Before you try an Engine CLI command, if you haven’t already, create a Docker ID. You can do this through Docker Hub. Once you have a Docker ID, log into your account from the Engine CLI:
$ docker login
login command stores your Docker ID authentication credentials in the
$HOME/.docker/config.json (Bash notation). For Windows
cmd users the
notation for this file is
%HOME%\.docker\config.json ; for PowerShell users
the notation is
Once you have logged in from the command line, you can
Engine subcommands to interact with your repos on Docker Hub.
You can search the Docker Hub registry via its search interface or by using the command line interface. Searching can find images by image name, user name, or description:
$ docker search centos NAME DESCRIPTION STARS OFFICIAL AUTOMATED centos The official build of CentOS 1223 [OK] tianon/centos CentOS 5 and 6, created using rinse instea... 33 ...
There you can see two example results:
tianon/centos. The second
result shows that it comes from the public repository of a user, named
tianon/, while the first result,
centos, doesn’t explicitly list a
repository which means that it comes from the trusted top-level namespace for
Official Repositories. The
/ character separates
a user’s repository from the image name.
Once you’ve found the image you want, you can download it with
docker pull <imagename>:
$ docker pull centos Using default tag: latest latest: Pulling from library/centos f1b10cd84249: Pull complete c852f6d61e65: Pull complete 7322fbe74aa5: Pull complete Digest: sha256:90305c9112250c7e3746425477f1c4ef112b03b4abe78c612e092037bfecc3b7 Status: Downloaded newer image for centos:latest
You now have an image from which you can run containers.
docker pull centos is equivalent to using
docker pull centos:latest.
To pull an image that is not the default latest image you can be more precise
with the image that you want.
For example, to pull version 5 of
docker pull centos:centos5.
In this example,
centos5 is the tag labeling an image in the
repository for a version of
To find a list of tags pointing to currently available versions of a repository see the Docker Hub registry.
In order to push a repository to its registry, you need to have named an image or committed your container to a named image as we saw here.
Now you can push this repository to the registry designated by its name or tag.
$ docker push yourname/newimage
The image will then be uploaded and available for use by your team-mates and/or the community.
Let’s take a closer look at some of the features of Docker Hub. You can find more information here.
Sometimes you have images you don’t want to make public and share with everyone. So Docker Hub allows you to have private repositories. You can sign up for a plan here.
One of the useful aspects of private repositories is that you can share them only with members of your organization or team. Docker Hub lets you create organizations where you can collaborate with your colleagues and manage private repositories. You can learn how to create and manage an organization here.
Automated Builds automate the building and updating of images from GitHub or Bitbucket, directly on Docker Hub. It works by adding a commit hook to your selected GitHub or Bitbucket repository, triggering a build and update when you push a commit.
Dockerfilethat you want to build.
Dockerfileis located. The default is
Once the Automated Build is configured it will automatically trigger a build and, in a few minutes, you should see your new Automated Build on the Docker Hub Registry. It will stay in sync with your GitHub and Bitbucket repository until you deactivate the Automated Build.
To check the output and status of your Automated Build repositories, click on a repository name within the “Your Repositories” page. Automated Builds are indicated by a check-mark icon next to the repository name. Within the repository details page, you may click on the “Build Details” tab to view the status and output of all builds triggered by the Docker Hub.
Once you’ve created an Automated Build you can deactivate or delete it. You
cannot, however, push to an Automated Build with the
docker push command.
You can only manage it by committing code to your GitHub or Bitbucket
You can create multiple Automated Builds per repository and configure them
to point to specific
Dockerfile’s or Git branches.
Automated Builds can also be triggered via a URL on Docker Hub. This allows you to rebuild an Automated build image on demand.
Webhooks are attached to your repositories and allow you to trigger an event when an image or updated image is pushed to the repository. With a webhook you can specify a target URL and a JSON payload that will be delivered when the image is pushed.
See the Docker Hub documentation for more information on webhooks
Go and use Docker!