我在docker中创建了一个映像。在其中安装了Ubuntu,JDK和其他几个库。然后我退出了容器并进行了这样的提交
docker commit a7b95082f6ea anil-ubuntu
我再次启动了容器
docker run -p 5901:5901 -t -i anil-ubuntu
这次我安装了gradle和其他两个库。然后退出容器,再次进行提交。
docker commit a7b95082f6ea anil-ubuntu
每次执行一次提交操作时,都会创建一个新图像,并保留带有存储库和标记的旧图像。遵循此工作流程很快,我将用光空间。这是使用docker的正确方法吗?我如何确保所有这些图像都消失了。
我正在Windows 10上使用Docker版本18.09.1桌面
答案 0 :(得分:2)
Docker映像是不可变的;创建图像后,就无法再更改了。
创建图像的正确方法是使用sample._id
。 Docker有一个相当不错的official tutorial on creating and running custom images;尽管它是面向Python的,但此处的基本技术适用于任何语言。
使用docker build
几乎总是错误的。 Dockerfile只是用于构建映像的步骤的基本清单–开始docker commit
一些基础映像,FROM
一些文件,COPY
一些命令–通常,轻松编写Dockerfile就像写出构建文本图像所涉及的步骤一样。您还需要与其他人一起处理需要此描述的图像,因此,当您从基础图像开始六个月内完成关键安全修复程序时,您需要自己记住如何你建造的。
我通常能找到的工作流程是:
RUN
是否在本地,并对其进行手动测试。将Dockerfile添加到我的源代码控制存储库中。docker run
新建一个映像。是的,这会导致备份旧图像,但这并不是真正有害的。您可以使用docker system prune
进行清理。