云计算核心技术Docker教程:如何让你的镜像体积
在启动容器或服务时,小镜像可以更快地通过网络拉动并加载到内存中。有一些经验法则可以保持较小的镜像尺寸
1.从适当的基础映像开始。例如,如果您需要 JDK,请考虑将您的镜像基于官方openjdk镜像,而不是从通用ubuntu镜像开始并openjdk作为 Dockerfile 的一部分进行安装。
2.使用多阶段构建。例如,您可以使用该maven映像来构建您的 Java 应用程序,然后重置为该tomcat映像并将 Java 工件复制到正确的位置以部署您的应用程序,所有这些都在同一个 Dockerfile 中。这意味着您的最终映像不包含构建引入的所有库和依赖项,而仅包含运行它们所需的工件和环境。
如果您需要使用不包含多阶段构建的 Docker 版本,请尝试通过最小化RUNDockerfile中单独命令的数量来减少映像中的层数。您可以通过将多个命令合并为RUN一行并使用 shell 的机制将它们组合在一起来实现。考虑以下两个片段。第一个在图像中创建两个图层,而第二个仅创建一个。
RUN apt-get -y update
RUN apt-get install -y python
RUN apt-get -y update && apt-get install -y python
3.如果您有多个具有很多共同点的图像,请考虑使用共享组件创建您自己的 基础图像,并以此为基础构建您的独特图像。Docker 只需要加载一次公共层,它们就会被缓存。这意味着您的衍生镜像可以更有效地使用 Docker 主机上的内存并更快地加载。
4.为了保持生产映像精简但允许调试,请考虑使用生产映像作为调试映像的基础映像。可以在生产映像之上添加额外的测试或调试工具。
5.在构建映像时,始终使用有用的标签标记它们,这些标签编码了版本信息、预期目标(prod或test,例如)、稳定性或在不同环境中部署应用程序时有用的其他信息。不要依赖自动创建的latest标签
人工智能培训
- 真正能和人交流的机器人什么时候实现
- 国产机器人成功完成首例远程冠脉介入手术
- 人工智能与第四次工业革命
- 未来30年的AI和物联网
- 新三板创新层公司东方水利新增专利授权:“一
- 发展人工智能是让人和机器更好地合作
- 新春贺喜! 经开区持续推进工业互联网平台建设
- 以工业机器人为桥 传统企业如何趟过智造这条河
- 山立滤芯SAGL-1HH SAGL-2HH
- 2015国际智能星创师大赛火热报名中!
- 未来机器人会咋看人类?递归神经网络之父-像蚂
- 成都新川人工智能创新中心二期主体结构封顶
- 斯坦德机器人完成数亿元人民币C轮融资,小米产
- 到2020年,智能手机将拥有十项AI功能,有些可能
- 寻找AI机器人的增长“跳板”:老龄化为支点的产
- 力升高科耐高温消防机器人参加某支队性能测试