Docker保存镜像到本地并载入本地镜像文件

这篇具有很好参考价值的文章主要介绍了Docker保存镜像到本地并载入本地镜像文件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、适用情况

二、镜像保存到本机 

1、查看已有的镜像文件

2、将镜像保存为本地文件

保存指令一

保存指令二

测试根据镜像ID保存镜像

三、载入本地镜像

载入指令一

载入指令二

载入通过镜像ID保存的本地镜像

四、批量保存和载入镜像脚本

批量保存镜像到本地脚本

批量载入镜像tar脚本


一、适用情况

一般我们下载Docker镜像会通过配置国内镜像源来加速下载,但是有时候会有以下几种的需求:

  • 设备不能联网,不能直接下载镜像,需要从其他设备下载镜像后拷贝到当前不能联网的设备上
  • 设备上的镜像在私有仓库中,无法进行下载,需要拷贝到当前设备

当遇到以上几种情况时,可参考以下操作(附镜像批量保存及批量导入脚本

二、镜像保存到本机 

1、查看已有的镜像文件

docker images

 如下图所示,当前设备内的所有镜像

Docker保存镜像到本地并载入本地镜像文件,Docker,Centos,运维,docker,容器,运维

2、将镜像保存为本地文件

   注意点:

  1. 保存的镜像必须为tar类型的文件
  2. 保存指令中如果使用的是镜像ID,导入tar文件时REPOSTITORY和TAG为none,需要利用该镜像的id重新设置镜像标签;如果使用的是镜像名称则不会出现该问题。
  • 保存指令一

#指令一
docker save -o /data/docker/nginx_latest.tar nginx

#指令一

docker save -o

     /data/docker/nginx_latest.tar    保存文件名,必须为tar类型,可加保存路径

     nginx                                         要保存的镜像(名称或ID均可,名称后可加TAG指定版本)

  • 保存指令二

#指令二
docker save nginx > nginx_latest01.tar

#指令二

docker save

        nginx                      要保存的镜像(名称或ID均可)

        >

        nginx_latest01.tar  要保存的镜像(名称或ID均可,名称后可加TAG指定版本)

 分别执行指令一和指令二

Docker保存镜像到本地并载入本地镜像文件,Docker,Centos,运维,docker,容器,运维

成功后保存到本地名为nginx_latest.tar和nginx_latest01.tar的文件

  • 测试根据镜像ID保存镜像

为测试“保存指令中如果使用的是镜像ID,导入tar文件时REPOSTITORY和TAG为none,需要利用该镜像的id重新设置镜像标签”而通过IMAGE ID保存的本地镜像,载入镜像时会单独测试

docker save -o nginx_latest_byID.tar 89da1fb6dcb9

Docker保存镜像到本地并载入本地镜像文件,Docker,Centos,运维,docker,容器,运维

三、载入本地镜像

我们有了本地的镜像文件,在需要的时候可以将保存好的本地镜像复制到所需设备上,使用docker load将本地保存的镜像再次导入docker中。

  • 载入指令一

#指令一
docker load < nginx_latest.tar

 以下演示为对同一个镜像删除后进行恢复

Docker保存镜像到本地并载入本地镜像文件,Docker,Centos,运维,docker,容器,运维

  • 载入指令二

#指令二
docker load --input nginx_latest.tar

指令二基本操作同指令一、

Docker保存镜像到本地并载入本地镜像文件,Docker,Centos,运维,docker,容器,运维

  • 载入通过镜像ID保存的本地镜像

通过IMAGE ID保存的本地镜像文件为nginx_latest_byID.tar,载入后REPOSTITORY和TAG为none,以下为load测试

Docker保存镜像到本地并载入本地镜像文件,Docker,Centos,运维,docker,容器,运维

四、批量保存和载入镜像脚本

批量保存和载入镜像脚本下载https://download.csdn.net/download/DreamEhome/88146817

  • 批量保存镜像到本地脚本

新建save_images.sh,写入以下内容:

#!/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_save"
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

新增的脚本并无执行权限,当前测试直接设置权限给777

#修改文件权限为简单粗暴的所有者、所属组和其他人都有读写执行权限
chmod 777 save_images.sh

 执行效果演示:

Docker保存镜像到本地并载入本地镜像文件,Docker,Centos,运维,docker,容器,运维

  • 批量载入镜像tar脚本

新建load_images.sh,其他操作同save_image.sh的操作

#!/bin/bash
  
# 在此处填写镜像文件的保存目录
IMAGE_DIR="/data/docker/image_save"
  
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,Centos,运维,docker,容器,运维

 Docker保存镜像到本地并载入本地镜像文件,Docker,Centos,运维,docker,容器,运维文章来源地址https://www.toymoban.com/news/detail-639566.html

到了这里,关于Docker保存镜像到本地并载入本地镜像文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 将docker打包成镜像并保存到本地

    如果想重装系统,又不想破坏docker里面配好的环境,那么可以将docker镜像打包到本地进行保存。 命令: docker commit 容器id 镜像名:tag 使用 docker ps -a 即可查看容器相关信息 注意:在运行的过程中没有进度提示,完成后使用 docker images 可以查看到该镜像。 命令: docker save -o 镜

    2024年02月10日
    浏览(8)
  • 【运维知识大神篇】运维人必学的Docker教程1(Docker安装部署+Docker镜像管理+容器管理常用命令+搭建docker的本地yum源+windows系统安装docker环境)

    【运维知识大神篇】运维人必学的Docker教程1(Docker安装部署+Docker镜像管理+容器管理常用命令+搭建docker的本地yum源+windows系统安装docker环境)

    本篇文章开始给大家介绍Docker,这个是我非常喜欢的一个服务,介绍给大家,希望大家也能喜欢! 目录 何为容器 Docker环境安装部署 一、yum安装(CentOS7.9) 二、rpm包安装(CentOS) 三、卸载docker环境 四、安装指定的docker版本 五、Ubuntu安装docker环境 六、使用deb安装docker 七、

    2024年01月18日
    浏览(47)
  • docker将已有的镜像打包成.tar.gz以及载入镜像

    1.  将docker中已存在的镜像打包成.tar.gz 2. 载入.tar.gz文件成镜像 注意:save和load命令对应使用,使用save保存的镜像文件就使用load加载, 本人使用save保存的.tar.gz镜像文件却使用docker import命令加载该镜像文件导致: 镜像虽然加载成功了,容器也创建成功了,但是启动不了容器

    2024年02月11日
    浏览(11)
  • docker save (docker镜像保存导出)

    官网文档地址:https://docs.docker.com/engine/reference/commandline/save/ 创建一个与镜像相同的docker备份。 1、重定向 进行保存 2、使用 --output 参数,进行保存 3、使用 -o 参数,进行保存 使用gzip将docker镜像保存到tar.gz文件中 You can use gzip to save the image file and make the backup smaller. 选择特定

    2024年02月12日
    浏览(9)
  • docker 保存镜像、容器与导入镜像容器

    可以通过以下步骤将Docker镜像导出到另一台计算机上: 在本地计算机上使用以下命令将Docker镜像保存为tar文件: 其中,image-name是要导出的Docker镜像的名称。 将保存的tar文件传输到另一台计算机上,可以使用scp命令或其他文件传输工具。 在目标计算机上使用以下命令将tar文

    2024年02月13日
    浏览(12)
  • CentOS如何使用Docker部署Plik服务并实现公网访问本地设备上传下载文件

    CentOS如何使用Docker部署Plik服务并实现公网访问本地设备上传下载文件

    本文介绍如何使用Linux docker方式快速安装Plik并且结合Cpolar内网穿透工具实现远程访问,实现随时随地在任意设备上传或者下载或者共享文件! Plik是一个可扩展且友好的临时文件上传系统,类似于wetransfer。它具有强大的命令行客户端和易于使用的Web UI,支持多个数据后端(文

    2024年04月17日
    浏览(12)
  • 在Docker中使用Dockerfile实现ISO文件转化为完整版Centos镜像,并搭建集群数据仓库

    在Docker中使用Dockerfile实现ISO文件转化为完整版Centos镜像,并搭建集群数据仓库

    在上一篇文章中,我们提到了如何使用Docker官方版本的centos7搭建容器集群并实现同一ip下使用不同端口的ssh远程登录,但是其中遇到了非常多的问题,例如: 官方的centos7过于“简陋”,导致我们运行脚本时因为没有预装依赖包而报错! 这个可太致命了,所以这篇文章教大家

    2024年02月12日
    浏览(10)
  • docker镜像导出保存为tar和tar包导入成docker镜像

    查看容器 查看镜像 导出容器 docker commit 命令,将容器生成新的镜像 docker export 命令,将容器打包成tar, 导出镜像 使用 docker save 同时将 多个 image 打包成一个文件,比如下面将镜像库中的 AAA 和 BBB 打包, 导入镜像 使用 docker import 命令将tar包的镜像文件导入进来 使用 docker l

    2024年02月11日
    浏览(8)
  • docker save 保存导出镜像

    注意这里是使用 容器id , 版本号可加可不加 官方文档:https://docs.docker.com/engine/reference/commandline/save/

    2024年02月12日
    浏览(13)
  • docker基于save保存镜像与基于load加载镜像

    #以busybox镜像创建一个容器,在容器中创建一个hello.txt的文件。 #拉取busybox 最新镜像,实际生产中,docker pull 这一步可以省略,docker run的时候会自己去拉取。 docker pull busybox docker run --name container1 busybox touch hello.txt #将对容器container1做出的修改提交为一个新镜像,镜像名为b

    2024年02月04日
    浏览(17)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包