docker export_记一次生产环境docker镜像迁移--离线安装

本文介绍了如何在无法连接外网的生产环境中,通过docker save和docker load命令将测试环境的Prometheus镜像迁移到生产环境。强调了两者之间的区别,docker export适用于容器内容备份,而docker save能保留镜像完整历史。详细步骤包括使用docker save保存镜像为压缩包,然后在目标环境使用docker load加载。后续将继续分享更多DevOps和DBA相关内容。

概述

因生产环境上不能上外网,而最近需要把测试环境上的prometheus直接迁移到生产环境上,所以这里用了docker镜像迁移的方式,下面简单介绍一下迁移的过程。

0e5a2aeb9765666a4fa5903e2da23561.png

docker save与docker export

在没有Docker Registry时,可以通过docker save和docker load命令完成镜像迁移的过程,先将镜像保存为压缩包,然后在其他位置再加载压缩包。

注意export命令是从容器(container)中导出tar文件,而save命令则是从镜像(images)中导出。export导出的文件再import回去时,无法保留镜像所有历史(即每一层layer信息,不熟悉的可以去看Dockerfile),不能进行回滚操作;而save是依据镜像来的,所以导入时可以完整保留下每一层layer信息。

可以依据具体使用场景来选择命令

  • 若是只想备份images,使用save、load即可
  • 若是在启动容器后,容器内容有变化,需要备份,则使用export、import

1、将镜像保存为压缩包文件

命令如下:

docker save [options] images [images...] 
3a4a53e8540b66ab94e0c478af89fe67.png

2、加载镜像

命令如下:

docker load [options] docker load -i xxx
73765c8a26b53947c5e5b02a0c0a7417.png

后面会分享更多devops和DBA方面内容,感兴趣的朋友可以关注下!

82883966aacdc9e66902d51c37ef1c84.png
### Docker 镜像离线下载与安装 对于无法连接到互联网的内网服务器而言,直接通过 `docker pull` 命令来获取镜像是不可行的。为了在这种环境下成功创建 Docker 容器,可以采用预先在能够上网的机器上导出所需镜像文件的方式,再将其传输至目标主机并导入。 #### 方法一:利用 save 和 load 指令实现镜像迁移 1. 在有网络接入权限的工作站执行如下操作保存指定名称的镜像为 tar 文件: ```bash tar_file="my-image.tar" docker save -o ${tar_file} image_name:image_tag ``` 2. 使用物理介质(U盘)、FTP 或其他方式把生成好的 `.tar` 文件复制给无外网环境下的计算机。 3. 登录到目的端之后加载刚才转移过来的数据包恢复成可用状态: ```bash docker load -i my-image.tar ``` 此过程会读取压缩文档中的元数据重建对应的映射关系表以便后续调用[^1]。 #### 方法二:借助 import/export 功能完成容器快照转换 如果手头只有现成运行着的服务实例而缺少原始构建脚本的话,则可考虑先做一次完整的备份动作再转存为目标格式。 1. 导出正在工作的容器快照作为临时过渡材料: ```bash container_id=$(docker ps -aqf "name=your_container_name") docker export -o container_snapshot.tar $container_id ``` 2. 接下来按照前述相同路径将打包成果搬运过去; 3. 利用下述指令重新定义新标签名从而正式加入本地仓库体系之中: ```bash cat container_snapshot.tar | docker import - new_image_name:new_tag ``` 值得注意的是这种方法得到的结果仅保留了根文件系统的静态视图而不含历史录层信息[^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值