docker数据目录迁移方法

背景:

我们在实际环境中安装docker,linux系统都是默认安装在系统盘的/var/lib/docker目录中,而在线上线下的服务器中,规划给系统盘的目录一般不会超过50G,所以在我们的docke环境中就会出现随着镜像过多会出现docker无法运行的情况,从而影响后端服务的运行,导致出现线上和线下的问题。这就需要我们在规划中,来解决和避免这种问题的出现。
要解决上述的问题,最好的方法就是docker目录的迁移,以下提供了两种方法;

技术实现:

docker目录的迁移其实非常简单,有以下两种方法可以实现。

方法一 docker安装路径的重配置;

操作如下:

a. 停掉docker服务;

systemctl stop docker

b. docker目录拷贝;
把docker的存储目录拷贝到要迁移的目录中去,此处我们迁移的目录为/data2/docker_data ;

cp -r /var/lib/docker /var/lib/docker-bak   #备份
cp -r /var/lib/docker  /data2/docker_data  #拷贝

c. 修改docker配置;
如果不存在配置目录则创建,存在则忽略:

 mkdir -p /etc/systemd/system/docker.service.d/

编辑devicemapper.conf:

   vi /etc/systemd/system/docker.service.d/devicemapper.conf

内容如下:

[Service]
ExecStart=
ExecStart=/usr/bin/dockerd --graph=/data2/docker_data/docker

编辑daemon.json;

   vi /etc/docker/daemon.json 添加 {"storage-driver": "devicemapper" } , 此处不修改,启动或者查询docker状态时可能会出现以下报错:
Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.

d. 加载和重启docker服务;

 systemctl  daemon-reload     #加载systemd管理器配置
 systemctl  restart docker       #重启docker服务
 systemctl  enable docker       #设置自启动

e. 验证;

docker info;  输出的信息中Docker Root Dir: /data2/docker_data/docker 咋表示修改成功;
验证镜像是否运行正常:
docker images   #检查镜像
docker ps           #检查运行的容器

f. 删除备份目录(确保验证步骤正常)

rm -rf  /var/lib/docker-bak /var/lib/docker

方法二 软链接方式(推荐方式)

操作如下:
a. 停掉docker服务;

systemctl stop docker

b. docker目录备份及软链接;
把docker的存储目录备份,然后再把目录移动到data2/docker_data/docker目录下,操作如下 ;

cp -r /var/lib/docker /var/lib/docker-bak   #备份
mv /var/lib/docker  /data2/docker_data/  #mv移动
ln -s /data2/docker_data/  /var/lib/docker  #软链接

c. 加载和重启docker服务;

 systemctl  daemon-reload     #加载systemd管理器配置
 systemctl  restart docker       #重启docker服务
 systemctl  enable docker       #设置自启动

d. 验证;
验证镜像是否运行正常:

docker images   #检查镜像
docker ps           #检查运行的容器

e. 删除备份目录(确保验证步骤正常)

rm -rf   /var/lib/docker-bak

建议

以上两种方法,第一个方法涉及修改docker原有的配置文件,风险较大,在线上环境不建议;第二个方法,没有涉及原有docker环境的内部配置的修改,对线上环境的服务影响较小,在线上环境建议使用这种方式;

  • 11
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值