更改docker路径(Linux服务器的/var目录满了修改docker的默认路径)

任务场景:

接到报警,某台服务器/var 目录快满了,需要清理目录

任务分析:

/var目录一般是数据的默认存储目录,例如mysql的存储目录是/var/lib/mysql 系统日志的默认目录是/var/log/,先登陆服务器看看是哪一个目录占据空间大,再想办法进行目录迁移或者清理文件

实施过程

1.登陆服务器,查看硬盘的试用情况

 [root@FVM1538 ~]# df -h
 Filesystem              Size  Used Avail Use% Mounted on
 /dev/mapper/Vg01-Lv_01   74G  4.8G   66G   7% /
 devtmpfs                 12G     0   12G   0% /dev
 tmpfs                    12G   12K   12G   1% /dev/shm
 tmpfs                    12G  1.3G   11G  11% /run
 tmpfs                    12G     0   12G   0% /sys/fs/cgroup
 /dev/sdb1               394G  248G  127G  67% /data
 /dev/sda1               976M  110M  800M  13% /boot
 /dev/mapper/Vg01-Lv_02  7.8G  7.0G  347M  96% /var
 tmpfs                   2.4G     0  2.4G   0% /run/user/0
 overlay                 7.8G  7.0G  347M  96% /var/lib/docker/overlay2/7585845f32e2e4abd37702db878dfe8f55a1ed8f3609fdfff085e46b82c07ea3/merged
 shm                      64M     0   64M   0% /var/lib/docker/containers/c05424480b3c05c0f834b290c767be85865eeb6495994d3b932ad60ab2a0bdc4/mounts/shm

更改docker路径(Linux服务器的/var目录满了修改docker的默认路径)

硬盘使用情况

发现是/var目录占了96%,然后发现下方还有docker的挂载,于是推测是docker的默认目录/var/lib/docker占据空间太大

2.统计/var/lib 目录下各个目录的大小

 [root@FVM1538 ~]# du -h --max-depth=1 /var/lib/
 9.9G    /var/lib/docker
 8.0K    /var/lib/ntp
 4.0K    /var/lib/dav
 16K     /var/lib/authconfig
 20K     /var/lib/net-snmp
 。。。
 11G     /var/lib/

 

更改docker路径(Linux服务器的/var目录满了修改docker的默认路径)

统计/var/lib目录的大小情况

确认是docker的默认存储目录占空间大,于是考虑迁移docker的存储目录,检查docker的存储目录命令是

 

更改docker路径(Linux服务器的/var目录满了修改docker的默认路径)

查找docker的默认存储路径

 

 [root@FVM1538 ~]# docker info   | grep -i ROOT
 Docker Root Dir: /var/lib/docker

3.创建新的目录

  mkdir -p /data/docker/lib

 

4.停止docker

 [root@FVM1538 data]#  systemctl stop docker.service

 

5.同步/var/lib/docker 目录到新目录

 [root@FVM1538 data]# rsync -av /var/lib/docker/   /data/docker/lib/

 

6.备份/var/lib/docker (生产环境上不要乱删除)

 mv /var/lib/docker     /data/07-15-docker-lib-bak

 

7.修改docker启动脚本

 vim /usr/lib/systemd/system/docker.service
 #在ExecStart=/usr/bin/dockerd  后面新增 --graph=路径
 ExecStart=/usr/bin/dockerd  --graph=/data/docker/lib/(新增的)

 

8.重启docker服务

[root@FVM1538 data]# systemctl daemon-reload
[root@FVM1538 data]# systemctl restart docker

 

9.检查硬盘和数据库容器启动情况

[root@FVM1538 data]# df -h
Filesystem              Size  Used Avail Use% Mounted on
/dev/mapper/Vg01-Lv_01   74G  4.8G   66G   7% /
devtmpfs                 12G     0   12G   0% /dev
tmpfs                    12G   12K   12G   1% /dev/shm
tmpfs                    12G  1.3G   11G  11% /run
tmpfs                    12G     0   12G   0% /sys/fs/cgroup
/dev/sdb1               394G  258G  117G  69% /data
/dev/sda1               976M  110M  800M  13% /boot
/dev/mapper/Vg01-Lv_02  7.8G  2.1G  5.3G  29% /var
tmpfs                   2.4G     0  2.4G   0% /run/user/0
overlay                 394G  258G  117G  69% /data/docker/lib/overlay2/7585845f32e2e4abd37702db878dfe8f55a1ed8f3609fdfff085e46b82c07ea3/merged
shm                      64M     0   64M   0% /data/docker/lib/containers/c05424480b3c05c0f834b290c767be85865eeb6495994d3b932ad60ab2a0bdc4/mounts/shm

 

更改docker路径(Linux服务器的/var目录满了修改docker的默认路径)

硬盘情况

硬盘情况正常,检查容器启动情况

[root@FVM1538 ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
c05424480b3c        mysql:5.7           "docker-entrypoint.s…"   5 months ago        Up 17 minutes       0.0.0.0:3306->3306/tcp, 33060/tcp   mysql

容器启动也正常,问题解决。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发表评论

登录后才能评论