Docker:docker 镜像包含什么?为了在机器之间传递保存的镜像,我必须将它们与源代码一起传递吗?

Docker:docker 镜像包含什么?为了在机器之间传递保存的镜像,我必须将它们与源代码一起传递吗?

我已经复制了在一台机器上创建的图像,并将该图像复制到另一台机器上。(使用 docker save -o [images.tar] 命令保存 docker 图像)

然后我在另一台机器上使用 docker loader 命令。为了运行这些镜像,我是否必须将源代码、Dockerfile 和 docker-compose.yml 文件与镜像一起传递?

答案1

Dockerfile 是用于创建镜像的指令。创建该镜像后,其他人无需 Dockerfile 即可运行该镜像。

图像本身应该包含运行应用程序的所有组件,如二进制文件、库和任何脚本(如果您有像 JavaScript 这样的解释语言,这就是您的源代码)。

docker-compose.yml 是关于如何运行镜像的配置。其中包括发布端口的位置以及如何挂载卷等设置,这些设置并不包含在镜像本身中。


因此,如果您已经复制了图像,那么运行它所需的只是 docker-compose.yml。


请注意,我不建议使用保存/加载来传输图像。您会发现已经发货的相同图层再次被传输。相反,即使在断开连接的环境中,也可以使用注册服务器,方法是运行自己的注册表。这会跟踪哪些层是新的,并加快传输速度,同时减少图像所使用的磁盘空间。

相关内容