docker容器资源空间占满

avatar 2022年3月1日18:12:44 评论 587 次浏览

服务器出现报警信息,登录后发现docker容器把空间占满了,但是根据容器中的路径进去后发现存在的文件没有那么多,一直以为系统的问题,重启系统还是没有改变,网上的各种方法也试过docker system prune也用了,但是减少的空间太小了,看下面的资源:

[wolf@wulaoer.org🔥🔥🔥🔥 ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        99G   93G  1.8G  99% /
devtmpfs        1.8G     0  1.8G   0% /dev
tmpfs           1.8G     0  1.8G   0% /dev/shm
tmpfs           1.8G  660K  1.8G   1% /run
tmpfs           1.8G     0  1.8G   0% /sys/fs/cgroup
tmpfs           365M     0  365M   0% /run/user/0
overlay          99G   93G  1.8G  99% /var/lib/docker/overlay2/bd9e9cf024aaffe1dc14cdec5cd908b7bb082121314d340c9f704ae0bd7e6c87/merged
shm              64M     0   64M   0% /var/lib/docker/containers/79dcb3d23b30d84ce5f998d13a69df02d1dabd7ded33b2214bc8a00d99a1e847/shm
tmpfs           365M     0  365M   0% /run/user/1001

显示的docker容器占用了93G,原本以为docker容器的日志问题,进入文件后

[wolf@wulaoer.org🔥🔥🔥🔥 ~]# cd /var/lib/docker/overlay2/bd9e9cf024aaffe1dc14cdec5cd908b7bb082121314d340c9f704ae0bd7e6c87/merged
[wolf@wulaoer.org🔥🔥🔥🔥 merged]# du -sh
976M	.
[wolf@wulaoer.org🔥🔥🔥🔥 merged]# du -sh * | grep G
1.4G	bd9e9cf024aaffe1dc14cdec5cd908b7bb082121314d340c9f704ae0bd7e6c87
[wolf@wulaoer.org🔥🔥🔥🔥 merged]#  du -hs /var/lib/docker/
5.5G	/var/lib/docker/

资源没有那么多,没有办法,只能把docker容器的路径进行修改一下,下面是修改方法:

[wolf@wulaoer.org🔥🔥🔥🔥 merged]# systemctl stop docker
[wolf@wulaoer.org🔥🔥🔥🔥 merged]# vim /usr/lib/systemd/system/docker.service

[Unit]
Description=Docker Application Container Engine
Documentation=http://docs.docker.com
After=network.target
Wants=docker-storage-setup.service
Requires=docker-cleanup.timer

[Service]
Type=notify
NotifyAccess=main
EnvironmentFile=-/run/containers/registries.conf
EnvironmentFile=-/etc/sysconfig/docker
EnvironmentFile=-/etc/sysconfig/docker-storage
EnvironmentFile=-/etc/sysconfig/docker-network
Environment=GOTRACEBACK=crash
Environment=DOCKER_HTTP_HOST_COMPAT=1
Environment=PATH=/usr/libexec/docker:/usr/bin:/usr/sbin
ExecStart=/usr/bin/dockerd-current \
          --add-runtime docker-runc=/usr/libexec/docker/docker-runc-current \
          --graph=/home/docker  \  #默认没有,这里是添加的
          --default-runtime=docker-runc \
          --exec-opt native.cgroupdriver=systemd \
          --userland-proxy-path=/usr/libexec/docker/docker-proxy-current \
          --init-path=/usr/libexec/docker/docker-init-current \
          --seccomp-profile=/etc/docker/seccomp.json \
          $OPTIONS \
          $DOCKER_STORAGE_OPTIONS \
          $DOCKER_NETWORK_OPTIONS \
          $ADD_REGISTRY \
          $BLOCK_REGISTRY \
          $INSECURE_REGISTRY \
          $REGISTRIES
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=1048576
LimitNPROC=1048576
LimitCORE=infinity
TimeoutStartSec=0
Restart=on-abnormal
KillMode=process

[Install]
WantedBy=multi-user.target

修改后,需要先把/var/lib/docker/下的文件copy到/home/docker下,如果不copy过去就会清楚容器,这里一定要注意,先copy后启动,启动docker后检查没有问题在删除/var/lib/docker下的文件。我这里因为空间不足所以/home/docker是新加的磁盘挂载过去的,所以copy后实际没有那么多。

数据已经迁移了,磁盘空间还是没有减少,后来发现原来监控的日志太多了,不是/var/lib/docker目录下占有空间问题。问题解决了,但是找方法是错了,原本docker是没有问题的,但是报错就是因为docker占用空间的问题。

avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: