gpt4 book ai didi

docker - 给定本地文件系统的更改,更新docker镜像

转载 作者:行者123 更新时间:2023-12-02 21:22:51 28 4
gpt4 key购买 nike

我试图弄清楚在更改用于创建docker镜像的本地文件系统时如何更新现有镜像。我以为我可以使用docker commit来做到这一点,但是当正在运行的镜像上的文件系统发生更改时,似乎可以更改镜像?

 /app.py 

从文件系统构建
 sudo docker build -t app 

现在对/app.py进行了本地更改。如何更改图片应用以反射(reflect)对/app.py的更改?现在,我必须删除旧图像,然后创建一个新图像。
sudo docker rmi app 
sudo docker build -t app

任何帮助表示赞赏!

最佳答案

首先,没有running image,只有running container。镜像是可以Docker方式交付的东西,您可以构建image,然后从中启动container

对于您的问题,我认为您提到了您的选择:

  • 重建图像
  • 进入正在运行的容器,进行更改,然后对其进行docker commit编码。就个人而言,如果docker build花费的时间很长,我只会使用这种方法来解决微小的问题或对图像进行修补。

  • Docker使用 union FScopy on write来构建镜像,这意味着如果您想对镜像进行更改,则无法就地更改它,它将创建额外的层以反射(reflect)您的更改,在某些情况下,将仅使用相同的图像名称。从交付的 Angular 来看,我认为为每个发行版构建一个具有不同标签的新镜像是完全可以的,甚至应该以这种方式完成,这就是为什么要使用 Dockerfile,而镜像不仅是您开始的事情您的容器,它们实际上是版本控制的交付 Artifact ,如果需要,您可以回滚到任何版本。因此,我认为您当前的解决方案是可以的。

    这里还有几句话:对于本地开发和测试,您可以在启动时将 /app.py作为卷安装到容器中,例如 docker run -v /path/to/host/app.py:/path/to/container/app.py your_base_image_to_run_app,然后将在本地FS上更改为 app.py的所有内容反射(reflect)到容器。完成工作后,建立新的镜像。

    关于docker - 给定本地文件系统的更改,更新docker镜像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43300300/

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