参考:
docker磁盘空间不足解决办法
给docker扩容、删除/var/lib/docker
问题描述:
某一天一台部署了docker的服务器根目录满了,经核查是docker默认目录/var/lib/docker占用空间较大导致,第一次搞docker没经验,用了默认目录
问题解决
主要思路是迁移docker默认目录
1.查看docker镜像存放目录空间大小
du -sh /var/lib/docker/
2.停止docker服务。
systemctl stop docker
3.查看磁盘容量大的空间,且在上面创建新的docker目录。
df -h
mkdir -p /yyq/docker/lib
4.迁移/var/lib/docker目录下的文件到新创建的目录/data/docker/lib
rsync -avz /var/lib/docker /yyq/docker/lib/
5.编辑 /etc/docker/daemon.json 添加如下参数
{
"graph": "/data/docker/lib/docker"
}
6.重新加载docker,并重启docker服务。
systemctl daemon-reload && systemctl restart docker
7.检查docker是否变更为新目录/yyq/docker/lib/docker
[root@consul3 yyq]# docker info
Containers: 16
Running: 16
Paused: 0
Stopped: 0
Images: 16
Server Version: 18.06.3-ce
Storage Driver: overlay2
Backing Filesystem: xfs
Supports d_type: true
Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 468a545b9edcd5932818eb9de8e72413e616e86e
runc version: a592beb5bc4c4092b1b1bac971afed27687340c5
init version: fec3683
Security Options:
seccomp
Profile: default
Kernel Version: 3.10.0-957.el7.x86_64
Operating System: Red Hat Enterprise Linux Server 7.6 (Maipo)
OSType: linux
Architecture: x86_64
CPUs: 16
Total Memory: 62.76GiB
Name: consul3.nrmsserver
ID: 2NVK:UFPW:PDN5:7Q6Z:MFEX:C2XW:CM54:SHUX:KI5K:MVZY:76SD:VOOO
Docker Root Dir: /yyq/docker/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
[root@consul3 yyq]#
[root@consul3 yyq]# rm -rf /var/lib/docker
rm: 无法删除"/var/lib/docker/containers/abee162f55bf49ce3e783d1fc5ee79b606b2568fcc361fa8ae69fcf513fed4fa/mounts/shm": 设备或资源忙
rm: 无法删除"/var/lib/docker/containers/e3167f81ea3500df346a5b40ca5e3711ad708e2cd88c6be4a6a65732add9137f/mounts/shm": 设备或资源忙
rm: 无法删除"/var/lib/docker/containers/1faf60e6315e32310a06d31b6934b2de6b458f3756a20bcdf78c5ec3dc2b526b/mounts/shm": 设备或资源忙
rm: 无法删除"/var/lib/docker/containers/6194eb1b57b5cdf988156b5b202af9e6e4d6af2eebd4783df21c28fcc8e4d783/mounts/shm": 设备或资源忙
rm: 无法删除"/var/lib/docker/overlay2/eabc83d16984f73a7edc87dff4c08ba201868c68486cfdf78485b8f7c9a29bd8/merged": 设备或资源忙
rm: 无法删除"/var/lib/docker/overlay2/9708367d5c53a1de182802ed61e62de5515a343ae27e162301a436417f4c5c87/merged": 设备或资源忙
rm: 无法删除"/var/lib/docker/overlay2/59cb5b62dad797f8a1f47a62b0cc4f0a628af94c14c90424eafc151ffaf0ca5d/merged": 设备或资源忙
rm: 无法删除"/var/lib/docker/overlay2/b550203946dbf0afe1af052148b887dc358d5de0c8640836e3f9b791de23f0c1/merged": 设备或资源忙
[root@consul3 irmsdate]#
8.解决无法删除/var/lib/docker的问题
查到其他的方案是比较复杂,我是直接df -hl查到所有挂载信息,把/var/lib/docker下内容umount即可
[root@consul3 irmsdate]# df -hl
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/rhel-root 50G 5.1G 45G 11% /
devtmpfs 32G 0 32G 0% /dev
tmpfs 32G 0 32G 0% /dev/shm
tmpfs 32G 3.2G 29G 11% /run
tmpfs 32G 0 32G 0% /sys/fs/cgroup
/dev/sda1 1014M 177M 838M 18% /boot
/dev/mapper/rhel-home 50G 33M 50G 1% /home
tmpfs 6.3G 4.0K 6.3G 1% /run/user/42
tmpfs 6.3G 60K 6.3G 1% /run/user/0
/dev/sr0 4.2G 4.2G 0 100% /mnt
/dev/mapper/rhel-yyq 300G 54G 247G 18% /yyq
tmpfs 6.3G 0 6.3G 0% /run/user/1000
overlay 50G 5.1G 45G 11% /var/lib/docker/overlay2/59cb5b62dad797f8a1f47a62b0cc4f0a628af94c14c90424eafc151ffaf0ca5d/merged
shm 64M 0 64M 0% /var/lib/docker/containers/abee162f55bf49ce3e783d1fc5ee79b606b2568fcc361fa8ae69fcf513fed4fa/mounts/shm
shm 64M 0 64M 0% /var/lib/docker/containers/1faf60e6315e32310a06d31b6934b2de6b458f3756a20bcdf78c5ec3dc2b526b/mounts/shm
overlay 50G 5.1G 45G 11% /var/lib/docker/overlay2/b550203946dbf0afe1af052148b887dc358d5de0c8640836e3f9b791de23f0c1/merged
shm 64M 0 64M 0% /var/lib/docker/containers/6194eb1b57b5cdf988156b5b202af9e6e4d6af2eebd4783df21c28fcc8e4d783/mounts/shm
overlay 50G 5.1G 45G 11% /var/lib/docker/overlay2/9708367d5c53a1de182802ed61e62de5515a343ae27e162301a436417f4c5c87/merged
shm 64M 0 64M 0% /var/lib/docker/containers/e3167f81ea3500df346a5b40ca5e3711ad708e2cd88c6be4a6a65732add9137f/mounts/shm
[root@consul3 yyq]# umount /var/lib/docker/overlay2/59cb5b62dad797f8a1f47a62b0cc4f0a628af94c14c90424eafc151ffaf0ca5d/merged
[root@consul3 yyq]# umount /var/lib/docker/containers/abee162f55bf49ce3e783d1fc5ee79b606b2568fcc361fa8ae69fcf513fed4fa/mounts/shm
[root@consul3 yyq]# umount /var/lib/docker/containers/1faf60e6315e32310a06d31b6934b2de6b458f3756a20bcdf78c5ec3dc2b526b/mounts/shm
[root@consul3 yyq]# umount /var/lib/docker/overlay2/b550203946dbf0afe1af052148b887dc358d5de0c8640836e3f9b791de23f0c1/merged
[root@consul3 yyq]# umount /var/lib/docker/containers/6194eb1b57b5cdf988156b5b202af9e6e4d6af2eebd4783df21c28fcc8e4d783/mounts/shm
[root@consul3 yyq]# umount /var/lib/docker/overlay2/9708367d5c53a1de182802ed61e62de5515a343ae27e162301a436417f4c5c87/merged
[root@consul3 irmsdate]# umount /var/lib/docker/containers/e3167f81ea3500df346a5b40ca5e3711ad708e2cd88c6be4a6a65732add9137f/mounts/shm
[root@consul3 irmsdate]# df -hl
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/rhel-root 50G 3.9G 47G 8% /
devtmpfs 32G 0 32G 0% /dev
tmpfs 32G 0 32G 0% /dev/shm
tmpfs 32G 3.2G 29G 11% /run
tmpfs 32G 0 32G 0% /sys/fs/cgroup
/dev/sda1 1014M 177M 838M 18% /boot
/dev/mapper/rhel-home 50G 33M 50G 1% /home
tmpfs 6.3G 4.0K 6.3G 1% /run/user/42
tmpfs 6.3G 60K 6.3G 1% /run/user/0
/dev/sr0 4.2G 4.2G 0 100% /mnt
/dev/mapper/rhel-yyq 300G 54G 247G 18% /yyq
tmpfs 6.3G 0 6.3G 0% /run/user/1000
[root@consul3 yyq]# rm -rf /var/lib/docker/
[root@consul3 yyq]# df -hl
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/rhel-root 50G 3.9G 47G 8% /
devtmpfs 32G 0 32G 0% /dev
tmpfs 32G 0 32G 0% /dev/shm
tmpfs 32G 3.2G 29G 11% /run
tmpfs 32G 0 32G 0% /sys/fs/cgroup
/dev/sda1 1014M 177M 838M 18% /boot
/dev/mapper/rhel-home 50G 33M 50G 1% /home
tmpfs 6.3G 4.0K 6.3G 1% /run/user/42
tmpfs 6.3G 60K 6.3G 1% /run/user/0
/dev/sr0 4.2G 4.2G 0 100% /mnt
/dev/mapper/rhel-yyq 300G 54G 247G 18% /yyq
tmpfs 6.3G 0 6.3G 0% /run/user/1000
[root@consul3 yyq]#