Dockerfiles是否存储在我的机器上?
当我运行命令:
docker run dockerinaction/hello_world
以下场景第一次播放:
dockerinaction/hello_world
Dockerfile
可以在下面看到:
FROM busybox:latest CMD ["echo", "hello world"]
所以从措辞:
DockersearchDocker Hub来获取映像
有几件事我很好奇:
- 是图像
dockerinaction/hello_world
? - 此图片是否引用另一个名为
busybox:latest
图片busybox:latest
? -
Dockerfile
是在我的机器上的什么地方?
以相应的顺序回答每个项目符号问题:
- 是的, 图像是
dockerinaction/hello_world
。 - 是的,图像引用
busybox:latest
,build立在它之上。 - 不,Dockerfile不存储在你的机器上。
docker run
命令正在下载在Docker Hub上发现的Docker镜像的压缩版本。 在某些方面,您可以将Dockerfile视为源代码,将构build的图像视为二进制文件。
如果你想,你可以写下你自己的Dockerfile,内容如下:
FROM busybox:latest CMD ["echo", "hello world"]
然后,在包含该文件(名为Dockerfile
)的目录中,您可以:
$ docker build -t my-hello-world:latest . $ docker run my-hello-world:latest
docker docker build
命令构buildDockerfile,在这种情况下,它存储在您的机器上。 构build的Docker镜像被标记为my-hello-world:latest
,并且只有在您的机器上(它的构build位置)才可用,除非您push
它push
到某个地方。 您可以通过引用docker run
命令中的标记来运行机器上的内置映像,如上面第二行所示。