实际的生产中,不可能服务器去联网下载,所以就需要归档的docker镜像,好多博客写的并不合理,仅仅是简单的 docker save ImageID -o /path/Image.tar,然后再加载,这会存在问题就是,加载的镜像没有仓库信息,也没有名字,这就尴尬了。正确的作法如下:
#将归档本地所有的镜像,加载的时候信息完整
docker save $(docker images| awk 'NR!=1 {print $1":"$2}') -o /tmp/ImageMigration/ImagesMigration.tar
#归档指定的镜像,加载时候信息完整
docker save $(docker images| grep Info |awk 'NR!=1 {print $1":"$2}') -o /tmp/ImageMigration/ImagesMigration.tar
#加载时候,没有特殊的操作
docker load -i /tmp/ImagesMigration.tar
重点是理解 awk这个命令:
#输出 docker images输出信息的第一列以及第三列
#如果你去操作的话就会发现一个问题就是,把第一行(信息表头)也展示出来了,不利于后面操作
awk '{print $1 ":" print $2}'
#隔离第一行表格信息
awk 'NR!=1 {print $1 ":" print $2}'
可以参考下面理解:
https://www.cnblogs.com/xudong-bupt/p/3721210.html
www.liaozhiwei.com/p/1243