基础镜像: centos7.5git
进入容器后, 前后安装了 jdk1.8, maven3.6.0, git, rocketmq4.3.2docker
安装完成后使用 docker commit 命令保存为镜像centos
结果跑了半天之后终于保存下来一看居然有 3.3G 的大小bash
我勒个去maven
去网上查了一番之后发现一个问题centos7
因为docker镜像的构建方式是以层的概念来实现的内存
就是说我在容器内所作的全部操做都会在构建镜像时运行一遍源码
因此每个操做所涉及到的内存空间, 都会成为镜像文件的一部分dockerfile
好比我在容器内下载了rocketmq的源码, 并在里面编译安装完成it
随后我把源码删掉了, 但是实际上他已经被深深地刻在了镜像上
投机取巧:
将已经安装好各个软件的容器中的相关文件download到宿主机的/home/package目录下
好比我这里的:
/usr/local/jdk1.8
/usr/local/maven3.6.0
/usr/local/rocketmq4.3.2
随后使用基础centos镜像打开一个新容器, 并把这些文件挂载到容器内:
docker run -it -v /home/package:/usr/local --privileged=true <centos镜像id> /bin/bash
进入容器后, 只须要修改 /root/.bashrc 文件, 设置一下环境变量
而后 docker commit 此容器
这样构建下来的镜像大小是 300+M (centos基础镜像为202M)
算是一波大瘦身吧. 固然是用dockerfile应该会更小
可是我如今还不会写, 再说吧!