首页 > 其他分享 >批量导入和导出docker镜像文件

批量导入和导出docker镜像文件

时间:2023-11-15 13:32:36浏览次数:29  
标签:image 镜像文件 导入 file images 镜像 docker

维护服务器时,如果服务器没有网络,还需要批量加载多个Docker镜像文件,我们可以使用脚本通过循环来自动化这个操作过程。

批量导入和导出docker镜像文件_遍历文件


批量导入docker镜像文件

  1. 创建一个文本文件,列出你要加载的所有镜像文件路径。每行一个文件路径。
  2. 创建一个Shell脚本(例如load_images.sh),并打开它。
  3. 在脚本中,使用docker load命令加载每个镜像文件。你可以使用for循环来遍历文件列表并加载每个镜像文件。

脚本load_images.sh的内容:

#!/bin/bash  


# 指定包含镜像文件路径的文本文件  
file_list="/home/weijishu/file_list.txt"  


# 遍历文件列表中的每个文件  
while IFS= read -r file; do  
    # 检查文件是否存在且为.tar文件  
    if [[ -f "$file" && "${file##*.}" == "tar" ]]; then  
        # 加载镜像文件  
        docker load -i "$file"  


        # 打印导入成功的消息  
        echo "Successfully imported image: $(basename -- "$file" .tar)"  
    fi  
done < "$file_list"

将/home/weijishu/file_list.txt替换为实际包含镜像文件路径的文本文件的路径。最后,在终端中,进入包含脚本的目录,并运行以下命令来执行脚本:

chmod +x load_images.sh  # 赋予脚本执行权限  
./load_images.sh          # 执行脚本,批量加载镜像文件

脚本将遍历文件列表中的每个文件,检查它是否为.tar文件,并使用docker load命令加载它。加载成功后,将打印出相应的成功消息。

批量导入和导出docker镜像文件_加载_02

批量导出docker镜像文件

要批量导出Docker镜像,可以使用Docker命令行工具的docker save命令。

用vi编辑save-images.sh文件,内容如下

#!/bin/bash  


# 指定包含镜像名称的文件  
file_list="/home/weijishu/image_list.txt"  


# 遍历文件列表中的每个镜像名称  
while IFS= read -r image; do  
    # 检查镜像是否存在  
    if docker images -q "$image" >/dev/null 2>&1; then  
        # 导出镜像  
        docker save -o "$image.tar" "$image"  


        # 打印导出成功的消息  
        echo "Successfully exported image: $image"  
    fi  
done < "$file_list"

然后进入终端,执行以下命令:

chmod +x save_images.sh  # 赋予脚本执行权限  
./save_images.sh           # 执行脚本,批量导出镜像

脚本将遍历文件列表中的每个镜像名称,检查镜像是否存在,并使用docker save命令导出镜像为.tar文件。导出成功后,将打印出相应的成功消息。


标签:image,镜像文件,导入,file,images,镜像,docker
From: https://blog.51cto.com/u_64214/8389130

相关文章

  • 如何使用docker-compose重新启动单个容器
    内容来自DOChttps://q.houxu6.top/?s=如何使用docker-compose重新启动单个容器我有一个包含4个容器的docker-compose.yml文件,它们分别是redis、postgres、api和worker。在开发worker容器期间,我经常需要重新启动它以应用更改。有没有一种好的方式可以重新启动单个容器(例如wor......
  • Docker logs 命令格式总结
    1、Dockerlogs命令格式dockerlogs参数容器名/容器id参数说明:--details显示提供给日志的其他详细信息--follow,-f实时跟踪日志输出--since显示自某个timestamp之后的日志大于等于某个时间,或相对时间,如1h就是1h)--tail,-nall从日志末尾显示的行数,默认值为all全......
  • 解决docker容器重启后adb连接手机重新授权问题
    安卓adb认证文件在~/.android目录下,在容器启动时将此目录作为数据卷持久化可以解决docker镜像重新编译后,需要在手机端重新点击授权的问题dockerrun-it-v/root/xxx/.android:/root/.androiddocker_image_name/bin/bash参数-v冒号前是宿主机目录,冒号后是容器目录。经测验......
  • windows ewomail docker搭建流程记录
     一、安装命令dockerrun-d-hmail.dowhere.com--restart=always-p25:25-p109:109-p110:110-p143:143-p465:465-p587:587-p993:993-p995:995-p8182:80-p8181:8080-p13307:3306-vD:/dockercontainer/ewomail/mysql/:/mysql/data/-vD:/dockerconta......
  • 从0开始构建WSL工作平台(VSCode、ssh、Xftp、Docker)
    一、命令行界面安装1、win+S,搜索PowerShell,右键管理员身份运行2、输入命令,启用 适用于Linux的Windows子系统 功能dism.exe/online/enable-feature/featurename:Microsoft-Windows-Subsystem-Linux/all/norestart3、在MicrosoftStore中下载中意的Linux分发版(如Ubu......
  • linux离线安装portainer&配置远程连接其他linux服务器的docker环境
    1、下载安装包的地址https://github.com/portainer/portainer/releases/tag/2.19.2 2、将安装包上传linux服务器并解压cd到安装包所在目录后执行如下命令解压:forfilein*.tar.gz;dotar-zxvf"$file"--strip-components=1;done3、设置环境变量echo-e"\n#设置port......
  • docker system prune -a
    dockersystemprune-a  docker system prune -a 是一个Docker命令,用于清理Docker系统中未使用的镜像、容器、网络和数据卷等资源。这个命令会删除所有未被使用的资源,包括未被使用的...TRANSLATEwithxEnglishArabicHebrewPolishBulgarianHindi......
  • EB-tresos安装完成后,导入项目工程失败的解决方法
     1.导入项目例程选中文件后,出现了两行报错,没法去进行Mcal配置。  2.找到例程的文件夹,点进MCAL后再点入EB_Plugins文件夹,点击上面的路径,可以Ctrl+C复制到剪贴板。  3.找到EB软件的安装路径,打开tresos文件夹,在打开links文件夹,双击里面的link后缀文件,用记事本打开。......
  • docker查看镜像日志
    在Docker中,可以使用dockerlogs命令来查看容器的日志,而不是直接查看镜像的日志。镜像是一个静态的文件,而容器是一个运行中的实例,它基于镜像创建而来,并且可以产生日志。以下是查看容器日志的基本语法:dockerlogs[OPTIONS]CONTAINER其中:OPTIONS包括一些选项,例如-f表示跟随......
  • Docker 部署 java应用
    创建DockerfileFROMopenjdk:8-jdk-alpine#前一个dns.jar为上传的jar包,后一个dns.jar是将服务器中jar包对应在容器中运行的jar包名称ADDdns.jardns.jar#容器暴露的端口号,需要与jar包在容器中运行使用端口号一致EXPOSE9999#容器启动之后执行的命令,java-jard......