我们在使用Dockerfile构建docker镜像时,一种方式是使用官方预先配置好的容器镜像。优点是我们不用从头开始构建,节省了很多工作量,但付出的代价是需要下载很大的镜像包。
比如我机器上docker images返回的这些基于nginx的镜像,每个都超过了100MB,而一个简单的Centos的镜像近200MB,如果安装了相关的软件,占用空间会更大。
[root@docker ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE nginx latest 540a289bab6c 5 weeks ago 126MB centos 6.9 2199b8eb8390 8 months ago 195MB
如果我们的需求是在构建一个符合我们实际业务需求的Docker镜像的前提下,确保镜像尺寸尽可能的小,应该怎么做呢?
思路是使用空镜像scratch。
scratch 的 Docker 官方镜像地址:https://hub.docker.com/_/scratch
创建一个 scratch 的目录:
[root@docker ~]# mkdir /opt/scratch [root@docker ~]# cd /opt/scratch/ [root@docker scratch]#
创建 dockerfile 文件,内容如下:
[root@docker scratch]# vi dockerfile [root@docker scratch]# cat dockerfile FROM scratch ADD hello / CMD ["/hello"]
原文:https://www.cnblogs.com/morgan363/p/11974867.html