离线docker容器打包转移到另外宿主机

此教程作为项目记录使用,所以是之前的内容,没有图可以看

这里提供两种方案

  1. 容器生成镜像,再把镜像打包成压缩包,提取上传到另外的宿主机
  2. 容器直接打包成压缩包,提取上传到另外的宿主机

1.容器->镜像->打包

 1.把容器创建为镜像

docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] #原始命令

docker commit <container_id> <image_name>

#其中 <container_id> 是你要保存为镜像的容器的ID,而 <image_name> 是你为新镜像起的名称。你可以使用 <repository>:<tag> 格式指定完整的镜像名称

eg: docker commit 91e0479efa5d detect:v8

docker commit 命令用于创建一个新的镜像,该镜像基于现有的容器状态。具体来说,它允许你在容器的当前状态下创建一个新的镜像,包含了容器内的所有文件系统和状态信息

2.将镜像打包成压缩包

docker save [OPTIONS] IMAGE [IMAGE...] #原始命令

docker save -o xxx.tar <ImageName:tag>

#其中 “ImageName:tag” 是你要备份的容器镜像的名称和标签
 -o, --output:指定保存的 tar 归档文件的路径

eg: docker save -o /opt/save/detectv8.tar.gz detect:v8

#需要指定压缩包存放目录,不然docker会将压缩包存放到默认目录,默认目录会因空间不足而报错

docker save 命令用于将一个或多个镜像保存为 tar 归档文件。这个命令可以用来备份镜像,或者在不同的 Docker 安装之间传输镜像。与 docker export 不同,docker save 不仅包含镜像的文件系统内容,还包含了镜像的元数据和配置信息

3.将压缩包文件导入到另一台宿主机

#首先给压缩包提供权限777,一般而言此种情况只在root用户需要使用
chmod 777 image.tar.gz
eg: chmod 777 /opt/save/detectv8.tar.gz

#将压缩包移动到主机和小站对应的共享目录上
mv image.tar.gz /tmp
eg: mv /opt/save/detectv8.tar.gz /opt/sftp

#...细致的转移过程,这里不赘述

4.载入压缩文件生成新镜像

docker load [OPTIONS] #原始命令

docker load -i image.tar.gz

#-i, --input:指定要加载的 tar 归档文件的路径

eg: docker load -i /opt/save/detectv8.tar.gz

docker load 命令用于从一个或多个 tar 归档文件中恢复镜像和标签。与 docker save 命令相对应,docker load 用于加载由 docker save 命令保存的镜像归档文件。它将这些归档文件中的镜像和标签重新导入到 Docker 引擎中,使得这些镜像可以在当前 Docker 环境中使用

2.容器->打包

1.将容器打包成压缩文件

docker export [OPTIONS] CONTAINER > output.tar

#OPTIONS 是一些可选的参数,你可以根据需要进行设置
 CONTAINER 是要导出文件系统内容的容器的名称或 ID
 output.tar 是要保存导出内容的目标文件

docker export mycontainer > container.tar

eg: docker export 91e0479efa5d > /opt/save/detectv7.tar.gz

docker export 命令用于导出容器的文件系统内容为一个 tar 归档文件。docker export 不导出镜像,而是导出容器的文件系统快照。这意味着导出的内容不包含容器的元数据或标签,只包含文件系统中的文件和目录

2.将压缩包文件导入到另一台宿主机

#首先给压缩包提供权限777,一般而言此种情况只在root用户需要使用
chmod 777 image.tar.gz
eg: chmod 777 /opt/save/detectv8.tar.gz

#将压缩包移动到主机和小站对应的共享目录上
mv image.tar.gz /tmp
eg: mv /opt/save/detectv8.tar.gz /opt/sftp

#...细致的转移过程,这里不赘述

3.读取压缩文件生成镜像

docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]

#OPTIONS 是一些可选的参数,你可以根据需要进行设置。
 file|URL|- 是要导入的归档文件的路径,可以是本地文件路径、远程 URL,或者 - 表示从标准输入流读取
 REPOSITORY[:TAG] 是要为导入的镜像设置的仓库名和标签。如果未提供标签,则默认为 latest

docker import container.tar

eg: docker import /opt/save/detectv7.tar.gz

docker import 命令用于从归档文件创建一个新的镜像,归档文件可以是使用 docker export 命令导出的容器快照,也可以是其他文件系统归档文件。与 docker load 命令不同,docker import 不直接加载镜像,而是创建一个新的镜像

4.修改镜像名称 

此时镜像名称为<none><none>,以下命令可以修改名称

docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

#SOURCE_IMAGE[:TAG] 是你要标记的镜像。如果没有指定标签,它默认为 latest
 TARGET_IMAGE[:TAG] 是你想要赋予镜像的新名称和可选的标签

docker tag <ImageID> <ImageName:tag>

eg: docker tag 4d0d001feca8 my_image:v1

docker tag 命令用于为现有的镜像创建一个标签,这样你就可以给镜像赋予一个易于识别的名称(仓库:标签)

 3.补充

白名单添加mount_white_path命令

cd /opt/middleware/MindXOM/bin/进入脚本文件所在路径。

./mount_white_path add Absolute_Path 向白名单中添加一个路径。

modify_path_sftp add Absolute_Path 向SFTP配置的白名单中添加一个路径。

modify_path_sftp display 显示当前SFTP配置的白名单所有的路径。检查

注:该路径需要再web端界面上与磁盘进行挂载,才可以获得大量的存储空间,或者采用已经挂载好的目录来获取SFTP权限

  • 27
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值