gpt4 book ai didi

docker - 可以分享一下 Docker 容器吗?

转载 作者:行者123 更新时间:2023-12-02 07:13:35 25 4
gpt4 key购买 nike

我一直在试图弄清楚为什么人们会选择将其设置的每个“步骤”添加到Dockerfile中。这将在某种状态下创建您的容器。

我认为的替代方案是从简单的基本镜像(如 ubuntu)创建一个容器。然后(通过 shell 输入)按照您想要的方式配置容器。

但是你可以共享容器吗?如果你只能与 Docker 共享镜像,那么我就会理解为什么人们会希望将容器设置的每一步都列在 Dockerfile 中。 .

我问这个问题的原因是因为我认为移植 shell 命令、配置文件更改等要纠正 Dockerfile 会带来一些麻烦。语法并让它们正常工作?但作为 Docker 新手,我可能高估了这项任务的难度。

编辑:我认为拥有 Dockerfile 的另一个有效理由每个设置步骤都用于记录容器的初始状态。与获得处于某种状态的容器相反,但不一定有办法从容器的镜像基本状态知道所有操作都完成了。

最佳答案

But can you share containers? If you can only share images with Docker then I'd understand why one would want every step of their container setup listed in a Dockerfile.

严格来说,。但是,您可以使用 docker commit 从现有容器创建新镜像。命令:

$ docker commit <container-name> <image-name>

此命令将从现有容器创建一个新镜像,您可以将其从注册表推送和拉取、导出和导入以及从中创建新容器。

The reason I ask is because I imagine there is some amount of headache involved with porting shell commands, file changes for configs, etc. to correct Dockerfile syntax and have them work correctly? But as a novice with Docker I could be overestimating the difficulty of that task.

如果您已经在使用其他一些机制进行自动化配置,则可以简单地将现有的自动化集成到 Docker 构建中。例如,如果您已经使用 shell 脚本配置镜像,只需在 Dockerfile 中添加一个构建步骤,即可将安装脚本添加到容器并执行它。理论上,这也可以与 Puppet、Salt 等配置管理实用程序一起使用。

EDIT: I suppose another valid reason for having the Dockerfile with each setup step is for documentation as to the initial state of the container. As opposed to being given a container in a certain state, but not necessarily having a way to know what all was done from the container's image base state.

确实。正如评论中提到的,自动且可重复构建图像具有明显的优势。如果您手动构建容器,然后使用 docker commit 创建镜像,则您不一定知道如何在稍后的时间点重新构建该镜像(当您想要发布应用程序的新版本或在更新的基础镜像之上重新构建镜像)。

关于docker - 可以分享一下 Docker 容器吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34558382/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com