'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 |