我已经复制了在一台机器上创建的图像,并将该图像复制到另一台机器上。(使用 docker save -o [images.tar] 命令保存 docker 图像)
然后我在另一台机器上使用 docker loader 命令。为了运行这些镜像,我是否必须将源代码、Dockerfile 和 docker-compose.yml 文件与镜像一起传递?
答案1
Dockerfile 是用于创建镜像的指令。创建该镜像后,其他人无需 Dockerfile 即可运行该镜像。
图像本身应该包含运行应用程序的所有组件,如二进制文件、库和任何脚本(如果您有像 JavaScript 这样的解释语言,这就是您的源代码)。
docker-compose.yml 是关于如何运行镜像的配置。其中包括发布端口的位置以及如何挂载卷等设置,这些设置并不包含在镜像本身中。
因此,如果您已经复制了图像,那么运行它所需的只是 docker-compose.yml。
请注意,我不建议使用保存/加载来传输图像。您会发现已经发货的相同图层再次被传输。相反,即使在断开连接的环境中,也可以使用注册服务器,方法是运行自己的注册表。这会跟踪哪些层是新的,并加快传输速度,同时减少图像所使用的磁盘空间。