docker pushEstimated reading time: 2 minutes
Edge only: This is the CLI reference for Docker CE Edge versions. Some of these options may not be available to Docker CE stable or Docker EE. You can view the stable version of this CLI reference or learn about Docker CE Edge.
Push an image or a repository to a registry
docker push [OPTIONS] NAME[:TAG]
|Skip image signing|
|docker||The base command for the Docker CLI.|
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.
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.
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.
Push a new image to a registry
First save the new image by finding the container ID (using
and then committing it to a new image name. Note that only
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
$ 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