Challenge, Easy,  on  Containers

Copying a container image from one repository to another is a common DevOps task. Sometimes, it’s needed because the image is changing homes, other times, it’s motivated by aggressive Docker Hub rate limiting, but often, it’s simply a matter of "mirroring" public images using the company's internal registry.

In this challenge, you will need to copy a public ghcr.io/iximiuz/labs/nginx image from GHCR to the playground's private registry registry.iximiuz.com. You need to copy only one tag - :alpine. Store the copied image in the new registry.iximiuz.com/third-party/nginx repository.

Beware that registry.iximiuz.com is protected by basic auth with the username iximiuzlabs and password rules!.

Good luck!

Hint 1 💡

It's an easy one - try docker pull --help if you feel a bit lost.

Hint 2 💡

A single image can have an arbitrary number of names, aka tags, which can be assigned to it using the docker tag <existing-name> <new-name> command. The tag in this context means the full image name and not just the part after the colon.

Hint 3 💡

If the docker login command fails with:

Error response from daemon: Get "https://registry-1.docker.io/v2/":
unauthorized: incorrect username or password

...make sure you are logging in to the right registry. If no registry is specified in the command, Docker will default to docker.io, which is Docker Hub. In this challenge, you are expected to push the image to another registry - registry.iximiuz.com.

Hint 4 💡

Surprisingly or not, it's only the (fully-qualified) image name, aka reference, that matters when pushing to a registry. If an image is named example.com:10000/foo/bar:qux, it will be pushed to a registry running on example.com:10000 when the docker push command is performed.

Container image name format visualized: registry domain, repository path, tag, and digest.

Level up your Server Side game — Join 9,000 engineers who receive insightful learning materials straight to their inbox