How to push docker images to another registry
Posted on April 12, 2021 by Adrian Wyssmann ‐ 2 min read
Sometimes it may be necessary to 'copy' docker images from one registry to another one - which is a very easy thing to do
At my employer we don’t have direct internet access, so if one needs to download docker image, she/he needs to use the internal registry (JFrog Artifactory), rather the official docker registry. Artifactory itself runs on kubernetes as well, thus relying on docker images - images hosted by itself. This can cause troubles when you want to upgrade Artifactory and requires to download new docker images. This we have setup a fallback registry using docker-registry. In order to have the fallback images stored in this registry we have to “copy” them there.
All you have to do are these simple steps:
Download the image you need
[papanito@archlinux ~]$ docker pull docker.prd.intra/bitnami/postgresql:9.6.18-debian-10-r7 9.6.18-debian-10-r7: Pulling from bitnami/postgresql 8639931041da: Pull complete 4d3c20145e72: Pull complete 31d2e2fd56b9: Pull complete 2df5129bdc5b: Pull complete 4d1738d978de: Pull complete 64b240571161: Pull complete 262647e176df: Pull complete df100498f366: Pull complete 2c124d31d59a: Pull complete c491889bfe7f: Pull complete 78eafaf7caa5: Pull complete Digest: sha256:a63224f91d0bd2dc9489337862ce37188a2e3378dfb4bef7133cbecea2a64cc0 Status: Downloaded newer image for docker.prd.intra/bitnami/postgresql:9.6.18-debian-10-r7 docker.prd.intra/bitnami/postgresql:9.6.18-debian-10-r7 [papanito@archlinux ~]$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE docker.prd.intra/bitnami/postgresql 9.6.18-debian-10-r7 eb0a50f73ced 10 months ago 338MB
Tag the image, using the url from the fallback-registry (docker-fallback.prd.intra):
[papanito@archlinux ~]$ docker tag docker.prd.intra/bitnami/postgresql:9.6.18-debian-10-r7 docker-fallback.prd.intra/bitnami/postgresql/9.6.18-debian-10-r7 [papanito@archlinux ~]$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE docker-fallback.prd.intra/bitnami/postgresql/9.6.18-debian-10-r7 latest eb0a50f73ced 10 months ago 338MB docker.prd.intra/bitnami/postgresql 9.6.18-debian-10-r7 eb0a50f73ced 10 months ago 338MB
Now that we have tagged the image, we can push it to the fallback-registry
[papanito@archlinux ~]$ docker login docker-fallback.prd.intra -u fallback Password: Login Succeeded [papanito@archlinux ~]$ docker push docker-fallback.intra/bitnami/postgresql:9.6.18-debian-10-r7 The push refers to repository [docker-fallback.prd.intra/bitnami/postgresql] 4af4a3a6d7f5: Layer already exists 49e1d446487d: Layer already exists 3cf57cb27d57: Layer already exists e4d0e4ffe969: Layer already exists 58eb215ff1bf: Layer already exists 24a67c88dc5c: Layer already exists e2b9ee1ce16d: Layer already exists b2ff695f59b5: Layer already exists e47dc03a6e0c: Layer already exists b8d0de821c92: Layer already exists 915e1ffcd29c: Layer already exists 9.6.18-debian-10-r7: digest: sha256:a63224f91d0bd2dc9489337862ce37188a2e3378dfb4bef7133cbecea2a64cc0 size: 2623
That’s it, the image is now available on the fallback-registry.