FROM RUN ADD 都会开一个分层
1.查看分层 # 查看所有镜像 [root@docker01 ~]# docker images # 删除<none>镜像 [root@docker01 ~]# docker image prune # 创建dockerfile目录 考个文件过去 [root@docker01 ~]# cd /opt/dockerfile/ [root@docker01 /opt/dockerfile]# mkdir test [root@docker01 /opt/dockerfile]# cd test/ [root@docker01 /opt/dockerfile/test]# cp /etc/services . [root@docker01 /opt/dockerfile/test]# ls services # 编辑dockerfile 把目录放进容器的/opt下 [root@docker01 /opt/dockerfile/test]# vim dockerfile FROM busybox:latest ADD services /opt # build镜像 [root@docker01 /opt/dockerfile/test]# docker image build -t test:v1 . # 保存镜像 [root@docker01 /opt/dockerfile/test]# docker save test:v1 -o docker_test.tar.gz [root@docker01 /opt/dockerfile/test]# ls dockerfile docker_test.tar.gz services # 镜像导出至windows [root@docker01 /opt/dockerfile/test]# sz docker_test.tar.gz解压之后出现两个目录 说明分成两层
进目录继续解压 会出现完整系统目录
复用,节省磁盘空间,相同的内容只需加载一份到内存。
修改dockerfile之后,再次构建速度快
1:尽可能选择体积小linux,alpine
2:尽可能合并RUN指令,清理无用的文件(yum缓存,源码包)
3:修改dockerfile,把变化的内容尽可能放在dockerfile结尾
4: 使用.dockerignore,减少不必要的文件ADD . /html
vim .dockerignore 这里面写你要忽略的文件名 就是你在特定目录下传镜像 特定目录下有你不需要的东西 比如压缩包什么的? 这些创镜像的时候就可以不要 放在这个配置文件里就好代码不同
大小不同
分层不同