gpt4 book ai didi

Docker如何修改现有图像

转载 作者:行者123 更新时间:2023-12-02 18:52:15 24 4
gpt4 key购买 nike

我在 docker 中创建了一个图像。在其中安装了 Ubuntu、JDK 和其他几个库。然后我退出容器并做了这样的提交

docker commit a7b95082f6ea anil-ubuntu

我又启动了容器

docker run -p 5901:5901 -t -i anil-ubuntu

这次我安装了 gradle 和其他几个库。然后退出容器并再次提交。

 docker commit a7b95082f6ea anil-ubuntu

enter image description here

每次我提交时,都会创建一个新图像,并保留带有存储库和标签的旧图像。按照这个工作流程,我很快就会用完空间。这是使用 docker 的正确方法吗?我如何确保所有这些图像都消失。

我在 Windows 10 上使用 docker 版本 18.09.1 桌面

最佳答案

Docker 镜像不可变;一旦你创建了一个图像,你就永远不能再改变它。

创建图像的正确方法是使用 docker build . Docker 有一个相当不错的 official tutorial on creating and running custom images ;虽然它是面向 Python 的,但这里的基本技术适用于任何语言。

使用 docker commit几乎总是错的。 Dockerfile 只是您用于构建镜像的步骤的基本列表 – 开始 FROM一些基本图像,COPY在某些文件中,RUN一些命令——通常编写 Dockerfile 就像写出构建图像所涉及的步骤一样容易。您还需要与需要此描述的其他人一起处理您的镜像,并且当您开始使用的基本镜像在六个月内有一个关键的安全修复时,您需要自己记住如何你 build 了它。

我通常找到的工作流程是:

  1. 在本地构建和测试我的应用程序,完全没有 Docker 参与
  2. 编写一个 Dockerfile 来构建我的应用程序,其中没有任何开发或测试工具。检查它 docker run在本地进行手动测试。将 Dockerfile 添加到我的源代码控制存储库。
  3. (可选但推荐)设置一个持续集成服务器和 Docker 注册表,以便在每次提交时,在本地单元测试通过后,都会构建一个新图像并 docker push编辑。

是的,这会导致旧图像备份,但这并不是真正有害的。您可以使用 docker system prune 清理它们。

关于Docker如何修改现有图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54617070/

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