docker保存镜像到本地并加载本地镜像文件详解
docker保存镜像到本地,并加载本地镜像文件
1、查看已有的镜像文件:
docker images
显示效果如下所示:
2、将镜像打包成本地文件
指令:docker save 镜像id > 文件名.tar
docker save 172825a55619>./watch_ocr.tar# watch_ocr.tar为打包的文件
显示效果如下所示:
3、在另一台主机加载本地文件到镜像
本地已有镜像:
加载本地文件到镜像:
指令:docker load < 文件名.tar
docker load < watch_ocr.tar # watch_ocr.tar 为文件名称
4、镜像重命名
执行完上述语句后,查看本地镜像,会看到新加载的镜像名字和标签都是none,利用该镜像的id对名字和标签重新命名即可:
指令:docker tag 镜像id 镜像名:标签
docker tag 172825a55619 watch_ocr:1.2
执行完毕后,查看本地镜像:
5、创建容器
指令:
docker run -it --name watch_ocr_contain 172825a55619 /bin/bash
watch_ocr_contain :容器名称
172825a55619 :镜像id
补充:docker批量导出导入本地镜像
日常工作中经常需要导出docker中的镜像,如果镜像数量过多时会相当麻烦,下列导出导入脚本很好的解决了该问题。
导出脚本
#!/bin/bash # 获取到 "image:tag" 格式的镜像名 IMG_NAME=`docker images | grep -v TAG | awk '{print $1":"$2}'` # echo $IMG_NAME | awk '{gsub(/ /,"\n",$0)} {print $0}' # 如果原本镜像名中存在 "/" 是需要去掉的 # 定义镜像存放目录 DIR="/data/docker/image_tar" if [ ! -d "$DIR" ]; then echo -e "\033[34m${DIR}\033[0m 不存在" mkdir -p "$DIR" echo -e "\033[34m${DIR}\033[0m 已创建" else echo -e "\033[34m${DIR}\033[0m 已存在" fi echo "" for IMAGE in $IMG_NAME do echo -e "正在保存 \033[33m${IMAGE}\033[0m" SAVE_NAME=`echo $IMAGE | awk -F: '{print $1"_"$2}' | sed 's/\//_/g'` docker save $IMAGE -o ${DIR}/${SAVE_NAME}.tar echo -e "已保存到 \033[34m${DIR}/\033[31m${SAVE_NAME}.tar\033[0m" echo "" done
导入脚本
#!/bin/bash # 在此处填写镜像文件的保存目录 IMAGE_DIR="/data/docker/image_tar" for IMAGE in `ls $IMAGE_DIR` do echo -e "正在导入镜像 \033[33m$IMAGE\033[0m" docker load -i ${IMAGE_DIR}/${IMAGE} echo -e "已成功导入镜像 \033[33m$IMAGE\033[0m" echo "" done
总结
到此这篇关于docker保存镜像到本地并加载本地镜像文件的文章就介绍到这了,更多相关docker保存镜像到本地内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
解决Docker x509 insecure registry的问题
这篇文章主要介绍了解决Docker x509 insecure registry的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2021-03-03Spring Boot 打包上传Docker 仓库的详细步骤
这篇文章主要介绍了Spring Boot 打包上传Docker 仓库的详细步骤,本文分步骤给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2021-08-08Docker系列学习之Swarm mode管理节点常用命令详解
这篇文章主要为大家介绍了Docker系列学习之Swarm mode管理节点常用命令详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2022-10-10
最新评论