使用Docker的过程中,很多时候Docker仓库中提供的镜像已经足够我们使用,但难免会出现,由于业务原因或其他特殊原因需要对镜像进行改造的场景,此时,需要对镜像进行扩展,以使镜像可以满足我们的需求。
创建镜像一般有三种方式:
· 基于已有镜像创建镜像。
· 基于本地模板导入镜像。
· 基于dockerfile创建镜像。
今天,就先来说说基于本地模板导入镜像。
公用模板导入
· 模板下载
访问https://wiki.openvz.org/Download/template/precreated,根据需求下载模板,本文选择centos-6-x86_64-20170709.tar.xz下载。
在宿主机上下载链接http://download.openvz.org/template/precreated/contrib/centos-6-x86_64-20170709.tar.xz。
· 导入模板
使用import导入已下载的镜像。
cat centos-6-x86_64-20170709.tar.xz|docker import - centos6
镜像export import
export和import可以通过容器导出、导入镜像。
· 查看镜像
通过docker ps -a
查看本机所有容器,本文使用已经存在如下所列的容器,选择centos:7进行导出、导入测试。
· 导出镜像
通过docker export
导出镜像,完整命令如下所示。
docker export b564267a6ca8 > /securitit/docker/exportimport/securitit-centos7.tar
· 导入镜像
通过docker import导入镜像,完整命令如下所示。
docker import - securitit-centos7 < /securitit/docker/exportimport/securitit-centos7.tar
执行命令后,通过docker images
命令可以查看新导入的镜像。
镜像save load
save和load可通过镜像来保存、加载镜像文件。
· 查看镜像
通过docker images
查看本机镜像,本文使用已经存在如下所列的容器,选择centos:7进行导出、导入测试。
· 保存镜像
通过docker save
导出镜像,完整命令如下所示。
# 保存镜像文件到指定目录.
docker save 7e6257c9f8d8 > /securitit/docker/exportimport/securitit-centos7-01.tar
# 多个镜像打包到一起.
# docker save -o 3dda71663c12 7e6257c9f8d8
· 加载镜像
通过docker load
导入镜像,完整命令如下所示。
docker load < /securitit/docker/exportimport/securitit-centos7-01.tar
总结
某些情况下,可能需要导出已经存在的镜像,离线传输到其他宿主机使用,此时,export、import、save和load就会十分有用。
若文中存在错误和不足,欢迎指正!