如何打造更小巧的容器镜像
副标题[/!--empirenews.page--]
Docker 近几年的爆炸性发展让大家逐渐了解到容器和容器镜像的概念。尽管 Linux 容器技术在很早之前就已经出现,但这项技术近来的蓬勃发展却还是要归功于 Docker 对用户友好的命令行界面以及使用 Dockerfile 格式轻松构建镜像的方式。纵然 Docker 大大降低了入门容器技术的难度,但构建一个兼具功能强大、体积小巧的容器镜像的过程中,有很多技巧需要了解。 第一步:清理不必要的文件这一步和在普通服务器上清理文件没有太大的区别,而且要清理得更加仔细。一个小体积的容器镜像在传输方面有很大的优势,同时,在磁盘上存储不必要的数据的多个副本也是对资源的一种浪费。因此,这些技术对于容器来说应该比有大量专用内存的服务器更加需要。 清理容器镜像中的缓存文件可以有效缩小镜像体积。下面的对比是使用
从上面的结果来看,清理缓存文件的效果相当显著。和清除了元数据和缓存文件的容器镜像相比,不清除的镜像体积接近前者的两倍。除此以外,包管理器缓存文件、Ruby gem 的临时文件、nodejs 缓存文件,甚至是下载的源码 tarball 最好都全部清理掉。 层:一个潜在的隐患很不幸(当你往下读,你会发现这是不幸中的万幸),根据容器中的层的概念,不能简单地向 Dockerfile 中写一句
你的容器镜像就会包含三层,而 在上一节的示例中,你会看到正确的做法是将几条命令链接起来,在产生缓存文件的同一条 Dockerfile 指令里把缓存文件清理掉:
这样就把几条命令连成了一条命令,在最终的镜像中只占用一个层。这样只会浪费一点缓存的好处,稍微多耗费一点点构建容器镜像的时间,但被清理掉的缓存文件就不会留存在最终的镜像中了。作为一个折衷方法,只需要把一些相关的命令(例如 层还有一个更隐蔽的特性。每一层都记录了文件的更改,这里的更改并不仅仅已有的文件累加起来,而是包括文件属性在内的所有更改。因此即使是对文件使用了 下面是一次
(编辑:济宁站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- win7计算机连接共享打印机0x000011b的处理方案
- 在Linux下交换Ctrl与大写锁定键
- windows10桌面背景如何设置windows10桌面背景设置实例教程
- 在Server 2012 Core中使用Powershell解压缩文件
- 越来越像Linux了!Windows系统5月更新让Python开箱即用
- windows-server-2008 – 如果你有多个域控制器,有没有理由备
- windows-server-2003 – 服务器2008系统分区的建议大小是多
- windows – 追踪哪个进程/程序导致Kerberos预身份验证错误(
- 联想电脑win10改win7系统教程步骤
- 收不到Win10 RS2预览版14901更新怎么办