docker容器存放目录磁盘空间满了,转移数据修改Docker默认存储位置

方法一 修改system配置文件

停止docker服务

[root@base ~]# systemctl stop docker

创建新目录,挂载数据盘

[root@base ~]# mkdir -p /data/docker_root

迁移/var/lib/docker数据到上述目录

[root@base ~]# cp -R /var/lib/docker/* /data/docker_root

修改docker配置

(/usr/lib/systemd/system/docker.service),增加--graph /data/docker_root即可

[root@base ~]# cat /usr/lib/systemd/system/docker.service 
...
[Service]
Type=notify
ExecStart=/usr/bin/dockerd --graph /data/docker_root
...

重启并查看

[root@base ~]# systemctl restart docker
[root@base ~]# docker info
...
 Operating System: CentOS Linux 7 (Core)
 OSType: linux
 Architecture: x86_64
 CPUs: 2
 Total Memory: 3.701GiB
 Name: VM-22-12-centos
 ID: 7ZG7:QHJ4:V6E2:PZRM:4GIR:GXK6:VU4W:FVF7:OX7Q:5J54:HLMW:GSFO
 Docker Root Dir: /data/docker_root
...
#查看Root Dir目录已更换

方法二 软连接

默认情况下Docker的存放位置为:/var/lib/docker,可以通过下面命令查看具体位置

[root@base ~]# sudo docker info|grep "Docker Root Dir"
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled
 Docker Root Dir: /var/lib/docker

直接的方法当然是挂载分区到这个目录,但是数据盘还有其它数据,所以采用修改镜像和容器的存放路径的方式达到目的,这个方法里将通过软连接来实现

停止docker服务

[root@base ~]# systemctl stop docker

迁移/var/lib/docker数据到上述目录

[root@base ~]# cp -R /var/lib/docker/* /data/docker_root
#创建软连接
[root@base ~]# ln -s /data/docker_root /var/lib/docker

重启并查看

[root@base ~]# systemctl restart docker
[root@base ~]# docker info
...
 Operating System: CentOS Linux 7 (Core)
 OSType: linux
 Architecture: x86_64
 CPUs: 2
 Total Memory: 3.701GiB
 Name: VM-22-12-centos
 ID: 7ZG7:QHJ4:V6E2:PZRM:4GIR:GXK6:VU4W:FVF7:OX7Q:5J54:HLMW:GSFO
 Docker Root Dir: /var/lib/docker
...
#查看Root Dir目录已更换

这时候启动Docker时发现存储目录依旧是/var/lib/docker,但是实际上是存储在数据盘的,你可以在数据盘上看到容量变化

文章作者: 鲜花的主人
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 爱吃可爱多
Docker Docker
喜欢就支持一下吧
打赏
微信 微信
支付宝 支付宝