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位置)才可用,除非您pushpush到某个地方。 您可以通过引用docker run命令中的标记来运行机器上的内置映像,如上面第二行所示。