'What are <none> repository and tags? Why do they appear when I use docker build?
This is what docker images shows before I run docker build.
$ docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
myapp latest a38da0bd9e0b 6 seconds ago 523.8 MB
golang onbuild b4997c557048 10 days ago 517.2 MB
After I make some changes to the myapp source code, I run docker build -t myapp . and I end up with images named <none>.
$ docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
myapp latest a38da0bd9e0b Less than a second ago ago 523.8 MB
<none> <none> e4209f97e819 10 minutes ago 523.8 MB
golang onbuild b4997c557048 10 days ago 517.2 MB
I know I can remove them with docker rmi <IMAGE ID>, but why does that happen in the first place? How can I prevent that from happening? The Dockerfile I'm building looks like this.
FROM golang:onbuild
EXPOSE 8080
Solution 1:[1]
If you reassign a tag or image name to another image, your image will lose its tag or name. It's really that simple. Your myapp repo image tagged latest with ID a38da0bd9e0b used to be named and tagged on image ID e4209f97e819.
Solution 2:[2]
You aren't setting up the tag right in the build command. Try:
docker build -t repo/stuff:tag .
This will work if your Dockerfile is named "Dockerfile" and you're in the directory you want to build from.
When you run docker image list it'll show repo/stuff as the repository and tag as the TAG
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | L0j1k |
| Solution 2 | Jacob Waters |
