【无脑业余IT】docker迁移

背景

公司买了个ECS,我先装了Docker,部署了gitlab,发现装在的系统盘,需要迁移到另外挂载的数据盘里。
记录过程以备后面使用。

过程

#查看当前正在运行的容器
docker ps -q

#停止所有正在运行的容器
docker stop $(docker ps -q)

#查看当前所有容器
docker ps -a

#提交到image,
#这步后来发现可以省略,因为docker所有文件包括容器的所有文件都移过去了,转移后可以直接运行
docker commit contos7.9_ssh_zbox image_cent0s7.9_ssh_zbox

#查看docker信息 获得 Storage Driver和Docker Root Dir
docker info
#我这里得到的是 /var/lib/docker和overlay2

#停止docker运行
systemctl stop docker.service

#查看docker运行状体,确认已经停止工作
systemctl status docker.service

#把镜像文件拷贝到新文件夹,这个用的时间还挺久
#第一次用了 cp -r ,拷完了运行各种报错权限不够,一看很多文件所有者都变成root了
mkdir -p /home/lib/
rsync -r -avz /var/lib/docker /home/lib/

#一边拷贝一边改文件
#改/etc/docker/daemon.json
#增加"data-root"
{
“registry-mirrors”: [“http://hub-mirror.c.163.com”],
“data-root”: “/home/lib/docker”
}

#好多文章说要改/etc/systemd/system/multi-user.target.wants/docker.service
#要把ExecStart这一行改成ExecStart=/usr/bin/dockerd --graph=/home/docker --storage-driver=overlay2
#实测之后总是重启服务失败,提示说不认识参数–graph=,查了下说是新版升级了所以不认识,也有说两个配置文件改一个就行,索性就把docker.service还原了,相当于是没改这个文件直接重启了服务也成功了

#重启 docker 服务
systemctl daemon-reload
systemctl restart docker
systemctl status docker

#检查docker信息是用的 “/home/lib/docker”
docker info

#重启容器,如果容器已经设置了–restart=always就会自动启动

#搞定~

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值