Docker使用技巧:优化构建、扫描漏洞与容器开发环境搭建
1. 优化Docker构建过程
Docker构建过程是可以并且应该进行优化的,这能减少软件开发生命周期中的诸多阻碍。许多Docker初学者在编写第一个Dockerfile时会犯一些错误。
1.1 未优化的Node.js应用Dockerfile问题
在典型的Node.js应用Dockerfile中,存在一个弱点。Docker镜像由一系列层组成,Dockerfile中的每一行(除了带有CMD和/或ENTRYPOINT关键字的行)都会创建一个层。Docker构建器会尝试缓存层并在后续构建中重用未更改的层,但缓存仅使用第一个更改层之前的缓存层,后续层都需要重新构建。
在常见的Node.js应用中, npm install 命令可能是一个开销很大的操作,执行时间从几秒到几分钟不等。每次源文件更改时,Dockerfile中的某一行会导致相应的镜像层改变,使得Docker构建器无法重用缓存中的该层,也无法重用 RUN npm install 创建的后续层,任何代码的微小更改都会导致 npm install 完全重新运行。
1.2 优化后的Node.js应用Dockerfile
优化的方法是先只复制很少更改的 package.json 文件到容器中,这样后续的 npm install 命令执行频率也会降低。代码更改后重新构建镜像时,只需要重新构建最后一层,构建时间可缩短至不到一秒。具体操作如下:
超级会员免费看
订阅专栏 解锁全文
1807

被折叠的 条评论
为什么被折叠?



