“Docker 镜像瘦身优化容器优化”的版本间的差异
跳到导航
跳到搜索
第1行: | 第1行: | ||
doccker 镜像优化瘦身 | doccker 镜像优化瘦身 | ||
− | os debian ubuntu 换为alpine | + | =os debian ubuntu 换为alpine = |
− | 去掉不要的扩展 | + | =去掉不要的扩展= |
+ | =减少层,去除非必要的文件= | ||
+ | 删除文件不要跨行 | ||
+ | |||
+ | 使用单行命令 | ||
+ | 除了删除语句需要放在一行以外,由于层的机制,我们安装依赖的一些公共的语句最好也使用条RUN命令生成,减少最终的层数 | ||
+ | |||
+ | 分离依赖包,以及源代码程序,充分利用层的缓存 | ||
+ | 这是一个最佳实践,在实际的开发过程中,我们的依赖包往往是变动不大的,但是我们正在开发的源码的变动是较为频繁,如果我们实际的代码只有 10M,但是依赖项有 1G, 如果在 COPY 的时候直接 COPY ... 会导致每次修改代码都会时这一层的缓存失效,导致浪费复制以及推送到镜像仓库的时间,将 COPY 语句分开,每次 push 就可以只变更我们频繁修改的代码层,而不是连着依赖一起 | ||
+ | |||
+ | 使用 .dockerignore | ||
+ | 在使用 Git 时,我们可以通过 .gitignore 忽略文件,在 docker build 的时候也可以使用 .dockerignore 在 Docker 上下文中忽略文件,这样不仅可以减少一些非必要文件的导入,也可以提高安全性,避免将一些配置文件打包到镜像中 | ||
=see also= | =see also= |
2021年6月23日 (三) 13:05的版本
doccker 镜像优化瘦身
os debian ubuntu 换为alpine
去掉不要的扩展
减少层,去除非必要的文件
删除文件不要跨行
使用单行命令 除了删除语句需要放在一行以外,由于层的机制,我们安装依赖的一些公共的语句最好也使用条RUN命令生成,减少最终的层数
分离依赖包,以及源代码程序,充分利用层的缓存 这是一个最佳实践,在实际的开发过程中,我们的依赖包往往是变动不大的,但是我们正在开发的源码的变动是较为频繁,如果我们实际的代码只有 10M,但是依赖项有 1G, 如果在 COPY 的时候直接 COPY ... 会导致每次修改代码都会时这一层的缓存失效,导致浪费复制以及推送到镜像仓库的时间,将 COPY 语句分开,每次 push 就可以只变更我们频繁修改的代码层,而不是连着依赖一起
使用 .dockerignore 在使用 Git 时,我们可以通过 .gitignore 忽略文件,在 docker build 的时候也可以使用 .dockerignore 在 Docker 上下文中忽略文件,这样不仅可以减少一些非必要文件的导入,也可以提高安全性,避免将一些配置文件打包到镜像中
see also