如果您想一次导出所有图像,请创建一个大 tar 文件:
docker save $(docker images -q) -o /path/to/save/mydockersimages.tar
如果您想将多张图片保存在一张图片中.tar
file:
IDS=$(docker images | awk '{if ($1 ~ /^(debian|centos)/) print $3}')
docker save $IDS -o /path/to/save/somedockersimages.tar
最后,如果您想导出多张图像,请使用一张.tar
每个图像文件(磁盘效率不高:公共层保存在每个图像中).tar
file):
docker images | awk '{if ($1 ~ /^(openshift|centos)/) print $1 " " $2 " " $3 }' | tr -c "a-z A-Z0-9_.\n-" "%" | while read REPOSITORY TAG IMAGE_ID
do
echo "== Saving $REPOSITORY $TAG $IMAGE_ID =="
docker save -o /path/to/save/$REPOSITORY-$TAG-$IMAGE_ID.tar $IMAGE_ID
done
您可能还想保存图像列表,以便可以标记恢复的图像:
docker images | sed '1d' | awk '{print $1 " " $2 " " $3}' > mydockersimages.list
在远程机器上, 你可以load
(导入)图像:
docker load -i /path/to/save/mydockersimages.tar
并标记导入的图像:
while read REPOSITORY TAG IMAGE_ID
do
echo "== Tagging $REPOSITORY $TAG $IMAGE_ID =="
docker tag "$IMAGE_ID" "$REPOSITORY:$TAG"
done < mydockersimages.list
有关保存/加载的更多信息,请阅读:如何在不使用存储库的情况下将 Docker 映像从一台主机复制到另一台主机 https://stackoverflow.com/questions/23935141/how-to-copy-docker-images-from-one-host-to-another-without-via-repository