此教程作为项目记录使用,所以是之前的内容,没有图可以看
这里提供两种方案
- 将容器生成镜像,再把镜像打包成压缩包,提取上传到另外的宿主机
- 将容器直接打包成压缩包,提取上传到另外的宿主机
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权限