Dockerfiles是否存储在我的机器上?

mbi*_*ras 2 docker

当我运行命令时:

docker run dockerinaction/hello_world
Run Code Online (Sandbox Code Playgroud)

第一次出现以下情况:

在此输入图像描述

dockerinaction/hello_world Dockerfile下面可以看到:

FROM busybox:latest
CMD ["echo", "hello world"]
Run Code Online (Sandbox Code Playgroud)

所以从措辞:

Docker在Docker Hub中搜索图像

有几件事我很好奇:

  • 形象 dockerinaction/hello_world吗?
  • 这是否图像引用另一个图像命名busybox:latest
  • 怎么样Dockerfile是我的机器上的某个地方?

mka*_*erg 5

每个项目符号问题的答案,按相应的顺序排列:

  • 是的,图像dockerinaction/hello_world.
  • 是的,图像确实参考busybox:latest,并以此为基础.
  • 不,Dockerfile未存储在您的计算机上.该docker run命令正在下载在Docker Hub上找到的已构建Docker镜像的压缩版本.在某些方面,您可以将Dockerfile视为源代码,将构建的图像视为二进制文件.

如果您愿意,可以使用以下内容编写自己的Dockerfile:

FROM busybox:latest
CMD ["echo", "hello world"]
Run Code Online (Sandbox Code Playgroud)

然后,在包含该文件(已命名Dockerfile)的目录中,您可以:

$ docker build -t my-hello-world:latest .
$ docker run my-hello-world:latest
Run Code Online (Sandbox Code Playgroud)

docker build命令构建Dockerfile,在这种情况下存储在您的计算机上.已构建的Docker镜像被标记为my-hello-world:latest,并且仅在您的计算机(构建它的位置)上可用,除非您push在某处.您可以通过参考docker run命令中的标记从您的机器运行构建的映像,如上面的第二行所示.