【docker】容器跨服务器的迁移的方法export&save

目录

场景

怎么做?

实战

export

save

区别

注意事项

推荐


场景

项目针对一家传统企业,服务器环境采用docker配置。企业的网络管理非常严格,对服务器对外的带宽也有限制,使用下载镜像images非常慢。想必使用docker部署环境都是常有docker pull去拉镜像,但是镜像有小有大,大的就不敢恭维了,迫于网络环境的影响,就发起了一个疑问,能不能通过安装包的形式装在images?

答案是肯定的,docker已经为我们考虑到了。

 

怎么做?

这里的基本步骤就是

1、将一台服务器的镜像或者容器打包成文件

2、上传至需要安装环境的服务器,通过存储介质或者FTP 还可以通过scp传输

例如scp mysql.tar.gz root@192.168.0.10:/backup/

3、装在docker打包的文件

经过以上步骤,镜像文件就可以通过docker images看到了

文中我会以mysql8进行举例

 

实战

docker的备份方式有export和save两种。

export是当前的状态,针对的是容器,docker save 是针对镜像images。

 

export

  1. docker ps 查看容器 查看哪个容器需要备份
  2. docker export 58ad41c4b855 >/lfback/mysql8.tar    "lfback是我备份的路径,必须先创建,或者先进入这个目录"
  3. du -sh mysql8.tar  "查看备份文件" 
  4. 将备份文件传送到指定的服务器上
  5. cat mysql8.tar | docker import - mysql:8.0.13 "恢复备份"

 

save

  1. docker images "查看需要备份的镜像"
  2. docker save c0031e8d29df >mysql8.tar "备份mysql8镜像 docker save [imageId] >[备份文件名]
  3. 将备份文件传送到指定的服务器上
  4. docker load <mysql8.tar "加载备份"
  5. docker images "查看镜像列表"

 

区别

导出后再导入(exported-imported)的镜像会丢失所有的历史,而保存后再加载(saveed-loaded)的镜像没有丢失历史和层 (layer)。这意味着使用导出后再导入的方式,你将无法回滚到之前的层(layer),同时,使用保存后再加载的方式持久化整个镜像,就可以做到层回 滚(可以执行docker tag <LAYER ID> <IMAGE NAME>来回滚之前的层)。

 

注意事项

推荐

【docker】Docker可视化工具Portainer

 

对于迁移 Docker 容器,有几种不同的方法可以选择。以下是一些常用的方法: 1. 导出和导入容器:可以使用 `docker export` 命令将容器导出为一个 tar 文件,然后在目标主机上使用 `docker import` 命令导入该文件为一个新的镜像。接下来,你可以使用这个新镜像创建并运行一个新的容器。 示例: ``` # 在源主机上导出容器 docker export <container_id> > container.tar # 在目标主机上导入容器 cat container.tar | docker import - <new_image_name> # 创建并运行新容器 docker run -d <new_image_name> ``` 2.保存和加载容器:你可以使用 `docker save` 命令将容器保存为一个 tar 文件,然后在目标主机上使用 `docker load` 命令加载该文件。这种方法类似于导出和导入容器,但是可以保留容器的历史记录和元数据。 示例: ``` # 在源主机上保存容器 docker save -o container.tar <container_id> # 在目标主机上加载容器 docker load -i container.tar # 运行加载的容器 docker run -d <loaded_image_name> ``` 3. 使用迁移工具:还有一些第三方工具可以帮助你进行容器迁移,如 `Portainer`、`Rancher`、`Kubernetes` 等。这些工具提供了更高级的功能和管理选项,可以简化容器迁移的过程。 无论你选择哪种方法,都需要确保目标主机上已经安装了 Docker,并且源主机和目标主机之间可以进行网络通信。此外,还需要确保容器的依赖项在目标主机上可用,以确保容器能够正常运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值