docker push


Push an image or a repository to a registry


docker push [OPTIONS] NAME[:TAG]

Extended description

Use docker push to share your images to the Docker Hub registry or to a self-hosted one.

Refer to the docker tag reference for more information about valid image and tag names.

Killing the docker push process, for example by pressing CTRL-c while it is running in a terminal, terminates the push operation.

Progress bars are shown during docker push, which show the uncompressed size. The actual amount of data that’s pushed will be compressed before sending, so the uploaded size will not be reflected by the progress bar.

Registry credentials are managed by docker login.

Concurrent uploads

By default the Docker daemon will push five layers of an image at a time. If you are on a low bandwidth connection this may cause timeout issues and you may want to lower this via the --max-concurrent-uploads daemon option. See the daemon documentation for more details.

For example uses of this command, refer to the examples section below.


Name, shorthand Default Description
--disable-content-trust true Skip image signing


Push a new image to a registry

First save the new image by finding the container ID (using docker ps) and then committing it to a new image name. Note that only a-z0-9-_. are allowed when naming images:

$ docker commit c16378f943fe rhel-httpd

Now, push the image to the registry using the image ID. In this example the registry is on host named registry-host and listening on port 5000. To do this, tag the image with the host name or IP address, and the port of the registry:

$ docker tag rhel-httpd registry-host:5000/myadmin/rhel-httpd

$ docker push registry-host:5000/myadmin/rhel-httpd

Check that this worked by running:

$ docker images

You should see both rhel-httpd and registry-host:5000/myadmin/rhel-httpd listed.

Parent command

Command Description
docker The base command for the Docker CLI.