我在 docker 中创建了一个镜像。在其中安装了 Ubuntu、JDK 和其他几个库。然后我退出容器并做了这样的提交
docker commit a7b95082f6ea anil-ubuntu
Run Code Online (Sandbox Code Playgroud)
我再次启动容器
docker run -p 5901:5901 -t -i anil-ubuntu
Run Code Online (Sandbox Code Playgroud)
这次我安装了 gradle 和其他几个库。然后退出容器并再次提交。
docker commit a7b95082f6ea anil-ubuntu
Run Code Online (Sandbox Code Playgroud)
每次我进行提交时,都会创建一个新图像,并保留带有存储库和标签的旧图像。按照这个工作流程,很快我就会用完空间。这是使用 docker 的正确方法吗?我如何确保所有这些图像都消失。
我在 Windows 10 上使用 docker 版本 18.09.1 桌面
Docker 镜像是不可变的;一旦你创建了一个图像,你就不能再改变它。
\n\n创建图像的正确方法是使用docker build. Docker 有一个关于创建和运行自定义镜像的非常好的官方教程;虽然它是面向 Python 的,但这里的基本技术适用于任何语言。
使用docker commit几乎总是错误的。Dockerfile 只是用于构建映像 \xe2\x80\x93 启动FROM一些基本映像、COPY在某些文件中、RUN某些命令 \xe2\x80\x93 的步骤的基本列表,通常也很容易编写一个 Dockerfile 以用文本写出构建镜像所涉及的步骤。您还需要与其他需要此描述的人一起处理您的映像,就此而言,当您开始使用的基础映像在六个月内进行了关键的安全修复时,您需要记住你自己如何构建它。
我通常认为有效的工作流程是:
\n\ndocker run在本地并手动测试。将 Dockerfile 添加到我的源代码控制存储库。docker push编辑一个新映像。是的,这会导致旧图像备份,但这并不是真正有害。您可以用来docker system prune清理它们。
| 归档时间: |
|
| 查看次数: |
11064 次 |
| 最近记录: |