相关阅读:
场景描述:
需要在客户现场快速部署应用,东西多,时间短
场景分析:
为了节省时间,使用docker进行快速部署,由于不是内部环境,无法使用内部私有库,于是构建镜像,将镜像导出
解决办法:
使用dockerfile构建应用镜像,将镜像导出,在部署的节点上将镜像导入,启动容器即可
镜像导入和导出:
docker提供了把镜像导出为文件的机制,有两种方式:
1.save / load 保存/加载
save有两种
第一种:
docker save 镜像id > 目录/XXX.tar
第二种(推荐):
docker save repository:tag > 目录/XXX.tar
load命令如下:
docker load < XXX.tar
2.export / import 导出/导入
export命令如下:
docker export 容器名 > XXX.tar
import命令:
docker import XXX.tar REPOSITORY:TAG
这两种方式都能都导出,但是细节不同,先进行对比,后通过实例演示
导出的对象
导出文件大小
是否可回滚到历史层
save / load
将镜像导出
大
是
export / import
将容器导出
小
否
从本质上来说,save/load导出的是镜像,export/import导出的是容器,大家不要弄混
相对于文件大小来说,save方式导出的文件比export方式导出的文件大
正是因为save方式保存了镜像的历史和层(layer),使其可以层回滚,即回滚到之前的历史层,所以save方式导出的文件稍微大一些
反观export方式,在导出过程中丢失所有的历史,导致其不可以层回滚,导出的文件会小一些
演示:
下面通过实例