84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
新手刚入门,自己学着创建系统镜像和各种应用的镜像
我先自己制作了一个centos67的镜像,然后基于centos67装了vim,再docker commit 保存为centos67vim然后再基于centos67vim上 编译安装了mysql5.6再commit保存为 mysql56,可是发现容量就达1.591GB了
我再docker pull mysql 发现为什么官方提供的只有360.3
多谢各位大大帮忙解答!!
在制作镜像的过程中,我们要注意几点:1.文件系统是UnionFs,Dockerfile中每一条RUN都会生成一个层次(layer)。所以我们需要在每一条RUN之后清理产生的数据。因为生成的结果(3G的大小)是各层次大小的线性叠加。2.为什么官方的镜像普遍偏小呢?我们就以mysql:5.6来作为参考,来分析一下:
RUN apt-get update && apt-get install -y perl --no-install-recommends && rm -rf /var/lib/apt/lists/*在更新组建以后,接着删除了apt的缓存的包文件。通常来说这个文件夹视情况会占用100M左右。
RUN { ...&& apt-get update && apt-get install -ymysql-server="${MYSQL_VERSION}" && rm -rf /var/lib/apt/lists/* && rm-rf /var/lib/mysql && mkdir -p /var/lib/mysql 在安装db以后,照例删除缓存的包文件。删除/var/lib/mysql能清除示例数据库。
而我们观察一下,hub.docker.com中最常用的vim包,我们发现haron/vim镜像是300M用的scratch作为基础镜像。
在hub.docker.com上粗略找了下,没有找到用centos做基础的mysql镜像。个人估计是缓存的包没有删掉,导致的问题。
mysql镜像分析
haron/vim分析
Centos基础镜像分析
Ubuntu基础镜像分析
怪不得我的安装了个lamp一件安装包就3G了,原来一个mysql就增加了1G
还没入门建议读完入门教程再玩
没删除临时文件就commit
你可以查看一下mysql的官方镜像的dockerfile,基础镜像估计也应该不同吧。一般情况下,很多官方的基础镜像都是很小的。例如scratch,然而如果使用一个ubuntu什么的,就得180M左右 (感谢 @imdjh 指正) ,centos 我没留意过。
scratch
如果你可以把你的Dockerfile公开出来的话,大家可以帮你看看。主要还是Dockerfile的撰写问题
在制作镜像的过程中,我们要注意几点:
1.文件系统是UnionFs,Dockerfile中每一条RUN都会生成一个层次(layer)。所以我们需要在每一条RUN之后清理产生的数据。因为生成的结果(3G的大小)是各层次大小的线性叠加。
2.为什么官方的镜像普遍偏小呢?我们就以mysql:5.6来作为参考,来分析一下:
而我们观察一下,hub.docker.com中最常用的vim包,我们发现haron/vim镜像是300M用的scratch作为基础镜像。
在hub.docker.com上粗略找了下,没有找到用centos做基础的mysql镜像。个人估计是缓存的包没有删掉,导致的问题。
至于@ShawnTaoo兄弟提到的基础镜像大小问题,我也做了下调查:centos:latest 190+MB, debian:jessie: 130+MB, ubuntu:latest 180+MB
参考资料:
mysql镜像分析
haron/vim分析
Centos基础镜像分析
Ubuntu基础镜像分析
怪不得我的安装了个lamp一件安装包就3G了,原来一个mysql就增加了1G
还没入门
建议读完入门教程再玩
没删除临时文件就commit
你可以查看一下mysql的官方镜像的dockerfile,基础镜像估计也应该不同吧。一般情况下,很多官方的基础镜像都是很小的。例如
scratch
,然而如果使用一个ubuntu什么的,就得180M左右 (感谢 @imdjh 指正) ,centos 我没留意过。
如果你可以把你的Dockerfile公开出来的话,大家可以帮你看看。主要还是Dockerfile的撰写问题