Give the name and… tag
When a child birth one of the first thing is give a name! You should do the same with yours images! Why I writing about this? If you are not becarefule with images names and tags you can do the mess with our local docker images storage. Sometimes you have to prepare different images for some features/branches/deploys.
Let's prepare our dockerized website.
Website:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Title</title>
</head>
<body>
<h1>Hello World</h1>
</body>
Image to run container responsible for displaing it:
FROM nginx
COPY index.html /usr/share/nginx/html/index.html
OK, It's time to building. Build first version by command docker build . Then we want to something change in the our website and build again by build command. Which images we have?
Console output:
root@local:~/project$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> c8af32463c20 5 seconds ago 141MB
<none> <none> f1663715c693 About a minute ago 141MB
nginx latest 605c77e624dd 8 days ago 141MB
As you see there are a <none> words. It's not helpful when you want to pick up specific image. Why we have images without REPOSITORY and TAG? It's caused by build image without -t option These images were built by command docker build . How we can fix it or how we can build images? It's firstival we can tag image after build by command docker tag.
For example docker tag f1663715c693 website:1.0 and docker tag f1663715c693 website:1.2.
Console output:
root@local:~/project$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> c8af32463c20 16 minutes ago 141MB
website 1.2 c8af32463c20 21 minutes ago 141MB
website 1.0 f1663715c693 22 minutes ago 141MB
nginx latest 605c77e624dd 8 days ago 141MB
But this needs from us additional action.
Remember, we can do it while building an new image.
docker build -t website:1.3 .
Very interesting option is adding multiple specific tags at once. The case with latest is very helpful to tag a version of image and set it at latest.
docker build -t website:1.3 -t website:latest .
Full documentation about tagging we can find on docs.docker.com.