Debian下Docker中的数据迁移+快照迁移
如果当初建立镜像的时候,选择的是目录引射的话,只需要在新服务器安装Docker,然后创建容器与映射目录,之后复制就的映射目录中的内容就可以了。
首先我们的前提条件是你新服务器中已经安装了Docker了,并且保持大版本一致
先需要安装Docker,然后迁移快照,之后在迁移数据。
Docker快照迁移
注意,此阶段Docker不能关闭,切对应镜像的容器处于运行中
第一步:打包镜像
# 查看所有容器ID docker ps # 将对应容器ID的镜像新镜像生产 docker commit -p f47f3a9b887d gitea-backup # 生成之后的位置 docker images # 将容器打包,到root目录下 docker save -o /root/gitea-backup.tar gitea-backup # 将打包的进行上传至新服务器,可以使用FTP或者后面介绍的rsync 命令
第二步:在新服务器加载镜像
# 加载镜像 docker load -i ~/gitea-backup.tar # 查看是否已经加载 docker images # 启动容器,此命令为演示,请查看实际镜像的文档进行执行 # docker run -d -p 80:80 gitea-backup
Docker数据覆盖迁移
我们需停止容器的运行,Docker不停止也可以
第一步:如果数据量大的情况下,服务器之间迁移我们需要一些帮我们省力的工具
注意⚠️:rsync需要双端服务器都安装,如果是服务器那边的迁移,只需要安装一次就行
# 如果双方服务器中没有rsync的情况下,请使用以下命令安装 apt-get install rsync # 如果出现以下错误 # Package 'rsync' has no installation candidate # 请执行下面命令 apt-get update apt-get upgrade
第二步:将数据覆盖至新的docker目录
# 复制终端不小心断开的情况下,迁移命令将在 screen 中执行 screen -S dockerbackup # 从当前服务器迁移至其他服务器 rsync -av /var/lib/docker root@192.168.2.1:/var/lib/docker # 根据提示输入192.168.2.1的root密码,接下来就是等待同步结束,如果数据量太大的话,可以喝杯茶了。
第三步:重启Docker,并且启动容器
# 依次执行以下命令 systemctl daemon-reload systemctl restart docker systemctl enable docker # 启动容器
Docker数据迁移至新数据盘
我们需停止容器的运行,Docker不停止也可以
第一步:如果数据量大的情况下,服务器之间迁移我们需要一些帮我们省力的工具
注意⚠️:rsync需要双端服务器都安装,如果是服务器那边的迁移,只需要安装一次就行
# 如果双方服务器中没有rsync的情况下,请使用以下命令安装 apt-get install rsync # 如果出现以下错误 # Package 'rsync' has no installation candidate # 请执行下面命令 apt-get update apt-get upgrade
第二步:将数据迁移至新的docker目录
# 复制终端不小心断开的情况下,迁移命令将在 screen 中执行 screen -S dockerbackup # 从当前服务器迁移至其他服务器 rsync -av /var/lib/docker root@192.168.2.1:/data/docker # 根据提示输入192.168.2.1的root密码,接下来就是等待同步结束,如果数据量太大的话,可以喝杯茶了。
第三步:修改Docker中docker.service 配置文件
# 关闭开机启动 systemctl disable docker # 打印内容 # Removed /etc/systemd/system/multi-user.target.wants/docker.service. # 开机启动 systemctl enable docker # 打印配置文件所在目录 # Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /lib/systemd/system/docker.service. # 修改配置文件 vi /lib/systemd/system/docker.service # 注释掉配置中的 ExecStart #ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock # 在下面新增一行,/www/docker 就是你Docker数据文件新的目录 ExecStart=/usr/bin/dockerd --graph=/www/docker
第四步:重启Docker,并且启动容器
# 依次执行以下命令 systemctl daemon-reload systemctl restart docker systemctl enable docker # 启动容器
此方法使用与宝塔面板中的Docker迁移。
文章评论