基础镜像

信不过公共镜像站里面的镜像?那就自己动手制作基础镜像吧。

创建基础系统

docker 镜像就是一个 root 文件系统,因此,找到一个完整的系统进行打包就可以了。

1、虚拟机安装最小化系统

CentOS 有最小化安装的 iso 镜像,利用虚拟机最小化安装系统。

2、打包系统

安装完后,进入系统就可以开始打包。直接使用 tar 命令进行打包就可以了,支持的包格式:.tar .tar.gz .tgz .bzip .tar.xz .txz,一般使用 tar 就可以了,打包的速度比较快,而且最小化安装包也不会很大,不需要进行压缩。

tar --numeric-owner --exclude=/proc --exclude=/sys -cvf  /root/centos7-base.tar /

3、将打包的系统导入 docker 构建镜像

cat centos7-base.tar  |  docker import - centos7:v1.0

4、测试镜像

docker  run -it  --rm  centos7:v1.0   cat /etc/system-release

5、其他导入方式

docker import  centos7-base.tar centos7:v1.1

6、远程导入

docker import  http://192.168.57.102/centos7-base.tar centos7:v1.1

利用 commit 创建镜像

Docker 提供了一个 docker commit 命令,可以将容器的存储层保存下来成为镜像。换句话说,就是在原有镜像的基础上,再叠加上容器的存储层,并构成新的镜像。以后我们运行这个新镜像的时候,就会拥有原有容器最后的文件变化。

docker commit [选项] <容器ID或容器名> [<仓库名>[:<标签>]]

例如

docker  commit    d77ccec0b867     myimages:v0.1

docker images 就可以看到myimages:v0.1这个镜像的生成。

但是这种方法不推荐使用,因为容器在运行过程中,有执行很多命令和文件的修改,如果直接使用容器提交成镜像就会导致镜像变得很臃肿。

如果需要定制镜像,最好的方法就是使用 DockerFile 生成镜像,这也是一般制作镜像的方法。