我试图减少我使用Centos 7.2的码头图像的大小问题是它的数据量是257MB,这太高了... 我遵循最佳实践来编写Dockerfile以减小大小。 .. 有没有一种方法来修改后的图像生成和重建该图像看到的大小减少?是否可以从Docker镜像中删除不需要的软件包?
回答
首先,如果你想减少操作系统的大小,不要用大一个像CentOS的开始,你可以用高山是小现在
如果你仍然开始热衷于使用CentOS做以下
docker run -d --name centos_minimal centos:7.2.1511 tail -f /dev/null
这将在后台启动一个命令。然后,您可以进入使用
docker exec -it centos_minimal bash
现在开始删除您不需要使用yum remove
或yum purge
包装容器。一旦你完成你可以提交图像
docker commit centos_minimal centos_minimal:7.2.1511_trial1
实验壁球图片
另一种选择是使用构建命令的一个实验性的功能。在此你可以像下面
FROM centos:7
RUN yum -y purge package1 package2 package2
然后建立使用此文件
docker build --squash -t centos_minimal:squash .
为此,您需要添加"experimental": true
您/etc/docker/daemon.json
,然后重新启动服务器泊坞窗
第二个解决方案的作品,但不是第一个,谢谢 –
这是可能的,但并不高雅。就像你可以添加软件到基础图像,你也可以删除:
FROM centos:7
RUN yum -y update && yum clean all
RUN yum -y install new_software
RUN yum -y remove obsolete_software
问问自己:贵操作系统必须是CentOS的?然后我会建议你使用默认安装,并确保你有足够的磁盘空间和内存。
如果它不需要是CentOS,则应该从更简约的图像开始。看到这里的讨论: Which Docker base image should be used to install Apps in a container without any additional OS?
答案是正确的,但不在上下文中。问题是关于“重建图像以减小尺寸?”你正在做的只是添加另一层去除软件包,但较低层仍然有这些软件包,因此大小不会有任何区别,相反它也会增加一点,因为它会修改软件包数据库也 –
- 1. 是否可以从Docker镜像创建AWS AMI?
- 2. 可以移动Docker容器(不是Docker镜像)吗?
- 3. 如何删除推送的Docker镜像?
- 4. 无法在Docker中安装软件包Ubuntu镜像
- 5. 无法在Docker镜像中安装R软件包
- 6. 是否有可能从debian映像制作docker镜像
- 7. 如何通过命令行从docker hub删除docker镜像?
- 8. 是否可以在kubernetes上部署本地Docker镜像?
- 9. 是否可以直接向AWS部署Docker镜像?
- 10. 是否可以暂停Docker镜像构建?
- 11. 从Nexus Repository Manager中删除Docker镜像OSS 3.0.1-01
- 12. 我们是否真的需要Docker镜像上的安全更新
- 13. 如何访问Docker镜像中的JIRA软件文件?
- 14. 是否可以从CMFCRibbonCategory中删除CMFCRibbonPanel?
- 15. 删除软件包
- 16. 如何从HackageDB中删除软件包?
- 17. 我们是否可以使用撰写文件扩展Docker镜像
- 18. Spring boot docker插件需要每次都删除图像
- 19. 哪里可以找到Docker镜像中的tomcat文件夹
- 20. 如何删除所有Docker本地Docker镜像
- 21. 从文件删除不需要的值
- 22. 无法替换docker中的软件源码Ubuntu镜像
- 23. 是否可以使<video>镜像?
- 24. 在Ubuntu中安装软件包是否需要互联网?
- 25. 在.Net内核中是否需要Serilog软件包?
- 26. 是否可以从ASP.NET MVC中的URL中删除文件夹?
- 27. 使用“pip”卸载软件包是否也删除相关软件包?
- 28. 是否可以使用docker API从docker主机上的文件创建映像?
- 29. 是否可以在laravel中执行“将来”软删除?
- 30. zendframework/zend-http软件包需要49个组件是否正常?
不要在dockerfile使用'CentOS'来代替使用'alpine'。从已经很小的东西开始,而不是试图让一些小东西 –
谢谢你的回答,但我需要安装的包需要百胜安装,所以高山不是我的解决方案... –
然后看看我发布的答案 –