0
0
Dockerdevops~5 mins

Image tags and versioning in Docker - Commands & Configuration

Choose your learning style9 modes available
Introduction
When you build and share Docker images, you need a way to identify different versions clearly. Image tags let you label images with names and versions so you know exactly which one you are using or sharing.
When you want to run a specific version of an application in a container.
When you need to update your app but keep the old version available for rollback.
When you share images with your team or publish them to a registry like Docker Hub.
When you automate deployments and want to control which image version is deployed.
When you want to avoid using the default 'latest' tag to prevent unexpected updates.
Commands
Builds a Docker image from the current folder and tags it as 'my-app' with version '1.0'. This helps identify this specific build.
Terminal
docker build -t my-app:1.0 .
Expected OutputExpected
Sending build context to Docker daemon 2.048kB Step 1/3 : FROM alpine ---> a24bb4013296 Step 2/3 : RUN echo Hello World ---> Running in 3c1f2b7d9f3a Removing intermediate container 3c1f2b7d9f3a ---> 5d8b7f3a7c1e Step 3/3 : CMD ["echo", "Hello World"] ---> Running in 9f8a7b6c5d4e Removing intermediate container 9f8a7b6c5d4e ---> 7f9d3a2b1c0e Successfully built 7f9d3a2b1c0e Successfully tagged my-app:1.0
-t - Assigns a name and tag to the image
Lists all images named 'my-app' with their tags and IDs so you can see the versions available locally.
Terminal
docker images my-app
Expected OutputExpected
REPOSITORY TAG IMAGE ID CREATED SIZE my-app 1.0 7f9d3a2b1c0e 10 seconds ago 5MB
Tags the existing 'my-app:1.0' image also as 'my-app:latest' so it can be referenced by the common 'latest' tag.
Terminal
docker tag my-app:1.0 my-app:latest
Expected OutputExpected
No output (command runs silently)
Uploads the 'my-app:1.0' image to the Docker registry so others can pull this exact version.
Terminal
docker push my-app:1.0
Expected OutputExpected
The push refers to repository [docker.io/library/my-app] 1.0: Pushed
Downloads the 'my-app:1.0' image from the registry to use it locally or in deployment.
Terminal
docker pull my-app:1.0
Expected OutputExpected
1.0: Pulling from library/my-app Digest: sha256:abcdef1234567890 Status: Downloaded newer image for my-app:1.0
Key Concept

If you remember nothing else from this pattern, remember: always tag your Docker images with meaningful version numbers to control which version you use or share.

Common Mistakes
Using the 'latest' tag without specifying a version.
This can cause unexpected updates because 'latest' always points to the newest image, which might break your app.
Always tag images with explicit version numbers like '1.0' and use those tags in your deployments.
Not tagging images before pushing to a registry.
Docker will push the image with the default 'latest' tag, which may not be what you want.
Tag your image with the correct version before pushing, e.g., 'docker tag my-app:1.0 my-app:stable' then push.
Summary
Build Docker images with tags to label versions clearly.
Use 'docker images' to list available image versions locally.
Tag images explicitly before pushing to share specific versions.
Pull images by tag to get the exact version you need.
Avoid relying on the 'latest' tag alone to prevent surprises.