更改docker默认挂载目录

it2024-08-10  37

场景

生产上运行了一段时间docker后,根分区使用量报警,由于根分区不是lvm类型的,所以无法做扩容,故采用新加一块硬盘,挂载到新目录/docker/,并将docker默认挂载目录改到这个目录的方法解决磁盘将满的问题。

新加磁盘并挂载

fdisk /dev/vdb 过程略 mkfs.xfs /dev/vdb1 mkdir /docker mount /dev/vdc1 /docker [root@cloud-jumpserver01 ~]# blkid /dev/vdc1: UUID="27d703ee-41b1-4b7e-860b-aa465b807e39" TYPE="xfs" cat /etc/fstab UUID=27d703ee-41b1-4b7e-860b-aa465b807e39 /dev/vdc1 xfs defaults 1 1

更改docker挂载目录

cat /etc/docker/daemon.json {"registry-mirrors": ["http://f1361db2.m.daocloud.io"], "data-root": "/docker" }

加载配置

systemctl daemon-reload systemctl restart docker

验证挂载目录是否更改

docker info Docker Root Dir: /docker docker ps -a

说明:这时候如果docker ps -a是不会有任何输出的。

复制文件到新的挂载目录

cp -arp /var/lib/docker/* /docker/

说明:提示是否覆盖文件,选择是。

重启docker

systemctl restart docker

验证旧容器是否正常

docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 11ea907c531e jumpserver/jms_guacamole:1.5.3 "/init" 12 months ago Up 4 minutes 127.0.0.1:8081->8080/tcp jms_guacamole c9b5a730f6ec jumpserver/jms_koko:1.5.3 "./entrypoint.sh" 12 months ago Up 4 minutes 0.0.0.0:2222->2222/tcp, 127.0.0.1:5000->5000/tcp jms_koko

删除旧容器数据

mkdir /docker/old_docker/ 删数据之前备份一下 cp -arp /var/lib/docker/* /docker/old_docker/ 删除旧容器数据
最新回复(0)