docker 容器相关问题(docker空间爆满导致的进入容器失败的解决方案)
类别:服务器 浏览量:2659
时间:2021-10-30 10:59:39 docker 容器相关问题
docker空间爆满导致的进入容器失败的解决方案由于问题发生的比较突然,业务催的比较急,所以没来得及截图案发现场,所以现场截图为后期正常的环境。
周一上班,照例进入服务器,进入docker容器
>>> docker exec -i -t xxx /bin/bash Docker error : no space left on device
立马想到查看系统的空间
>>> df -h
Filesystem Size Used Avail Use% Mounted on devtmpfs 3.9G 0 3.9G 0% /dev tmpfs 3.9G 0 3.9G 0% /dev/shm tmpfs 3.9G 984K 3.9G 1% /run tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup /dev/vda1 50G 50G 0G 100% / overlay 50G 5.9G 41G 13% /var/lib/docker/overlay2/4d0941b78fa413f3b77111735e06045b41351748bcea7964205bcfbf9d4ec0b6/merged overlay 50G 5.9G 41G 13% /var/lib/docker/overlay2/54a7a7b66d9c12d7e42158d177a6b67321f7da1f223b301e838e9bc109a2bda4/merged shm 64M 0 64M 0% /var/lib/docker/containers/712f65baea85d898f6c948e7149f84f2f5eaf3b1934540603f32ab278f9acec4/mounts/shm shm 64M 0 64M 0% /var/lib/docker/containers/a5fa673086c8f46ba98fc4425b353ed2e12de3277a5fe2dc5b8b7affa63b4518/mounts/shm overlay 50G 5.9G 41G 13% /var/lib/docker/overlay2/7fbbc8a29119a1eaa1f212c50b75405a1f16fd68e3ae3949cc0c963d0727a9ab/merged shm 64M 0 64M 0% /var/lib/docker/containers/011a83deceacecbacb4ef7eb06eb5b812babf9e83914a4fb33d4925cc1ad375b/mounts/shm tmpfs 783M 0 783M 0% /run/user/0
进一步查找
>>> cd / >>> du -h --max-depth=1
984K ./run 16K ./opt 13M ./root 4.0K ./media du: cannot access ‘./proc/4382/task/4382/fd/4': No such file or directory du: cannot access ‘./proc/4382/task/4382/fdinfo/4': No such file or directory du: cannot access ‘./proc/4382/fd/3': No such file or directory du: cannot access ‘./proc/4382/fdinfo/3': No such file or directory 0 ./proc 204M ./boot 12K ./redis 39M ./etc 16K ./lost+found 4.0K ./srv 0 ./sys 47G ./var 2.8G ./usr 4.0K ./mnt 36K ./tmp 0 ./dev 4.0K ./home 50G .
>>> cd var >>> du -h --max-depth=1
116M ./cache 8.0K ./empty 4.0K ./games 4.0K ./opt 24K ./db 46G ./lib 4.0K ./gopher 4.0K ./adm 4.0K ./crash 12K ./kerberos 4.0K ./preserve 4.0K ./nis 16K ./tmp 4.0K ./yp 4.0K ./local 104K ./spool 374M ./log 47G .
>>> cd lib >>> du -h --max-depth=1
76K ./systemd 24K ./NetworkManager 4.0K ./tuned 4.0K ./games 248K ./cloud 215M ./rpm 8.0K ./plymouth 46G ./docker 248K ./containerd 4.0K ./dbus 4.0K ./initramfs 4.0K ./os-prober 8.0K ./rsyslog 24K ./alternatives 8.0K ./authconfig 12K ./stateless 4.0K ./misc 4.0K ./ntp 8.0K ./dhclient 4.0K ./selinux 8.0K ./chrony 4.0K ./rpm-state 12M ./yum 8.0K ./postfix 28K ./polkit-1 4.0K ./machines 8.0K ./logrotate 46G .
>>> cd docker >>> du -h --max-depth=1
84K ./network 108K ./buildkit 4.0K ./trust 4.0K ./runtimes 5.7M ./image 42G ./volumes 24K ./plugins 4.0K ./tmp 20K ./builder 180K ./containers 3.3G ./overlay2 4.0K ./swarm 46G .
>>> cd volume >>> du -h --max-depth=1
172K ./kudu_to_jdy_kudu_to_jdy 42G ./jdy_extensions_logs 748K ./bot_etl_bot_etl 42G .
原来是jdy_extensions_logs这个volume爆满导致的,后面就是找代码bug的过程了,略
后记:其实docker提供了很多命令来对容器镜像进行管理,其中的docker system df就是一个比较有用的命令
# 显示docker文件系统使用情况 >>> docker system df
TYPE TOTAL ACTIVE SIZE RECLAIMABLE Images 7 3 2.146GB 693.2MB (32%) Containers 3 3 127.5kB 0B (0%) Local Volumes 3 3 1.511MB 0B (0%) Build Cache 0 0 0B 0B
# 显示空间使用情况 >>> docker system df -v
Images space usage: REPOSITORY TAG IMAGE ID CREATED SIZE SHARED SIZE UNIQUE SIZE CONTAINERS jdy_extension 1.7 e3be3be9664a 15 hours ago 627.6MB 73.86MB 553.7MB 1 <none> <none> 4b5825747ae9 19 hours ago 74.02MB 73.86MB 158.8kB 0 redis 6.2.1 f877e80bb9ef 2 weeks ago 105.3MB 0B 105.3MB 0 kudu_to_jdy 2.9 888b72288bca 2 weeks ago 538.1MB 73.86MB 464.3MB 1 jdy_to_db 1.9 c345c4e15c1a 7 months ago 587.7MB 73.86MB 513.9MB 0 bot_etl 2.3 020d41691ec7 7 months ago 508.6MB 73.86MB 434.8MB 1 ubuntu 20.04 adafef2e596e 8 months ago 73.86MB 73.86MB 0B 0 Containers space usage: CONTAINER ID IMAGE COMMAND LOCAL VOLUMES SIZE CREATED STATUS NAMES 011a83deceac jdy_extension:1.7 "supervisord -n -c /…" 1 17.8kB 15 hours ago Up 15 hours jdy_extension_1.7 712f65baea85 kudu_to_jdy:2.9 "supervisord -n -c /…" 1 36.9kB 2 weeks ago Up 45 hours kudu_to_jdy_2.9 a5fa673086c8 bot_etl:2.3 "supervisord -n -c /…" 1 72.8kB 7 months ago Up 45 hours bot_etl_2.3 Local Volumes space usage: VOLUME NAME LINKS SIZE jdy_extensions_logs 1 658.5kB kudu_to_jdy_kudu_to_jdy 1 128kB bot_etl_bot_etl 1 724kB Build cache usage: 0B CACHE ID CACHE TYPE SIZE CREATED LAST USED USAGE SHARED
# 删除所有没有在用的volume >>> docker volume rm $(docker volume ls -q)
补充:记一次docker磁盘占用100%情况
在执行git pull origin master的时候,抛出如下错误:
error: RPC failed; HTTP 500 curl 22 The requested URL returned error: 500
fatal: the remote end hung up unexpectedly
百度之后好多说是nginx文件大小限制,但是查看配置文件,大小限制已经设置到了500M,应该不是该原因造成的:
server { listen 80; server_name localhost; client_max_body_size 500M; location / { proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://localhost:180; } }
然后使用df -h查看磁盘情况,发现data2磁盘已经100%(docker存储在这里):
使用docker system prune -a释放了很多空间,问题解决。
注意:使用上述命令会删除一下内容
WARNING! This will remove: - all stopped containers - all networks not used by at least one container - all images without at least one container associated to them - all build cache Are you sure you want to continue? [y/N] y
以上为个人经验,希望能给大家一个参考,也希望大家多多支持开心学习网。如有错误或未考虑完全的地方,望不吝赐教。
您可能感兴趣
- docker镜像大是否会导致启动慢(docker下载镜像太慢的解决方案)
- docker进入mysql查看路径(Docker 环境运行 Mysql 和开启 Binlog 配置主从同步的设置方法)
- docker 环境下udp双向通信怎么办(解决Docker network Create加--subnet后遇到问题)
- docker的解剖(再见 Docker如何5分钟转型 containerd)
- 如何查看本机docker的安装目录(使用rpm安装指定版本docker1.12.6的详细步骤)
- docker怎么连接mysql(docker如何安装mysql)
- docker容器的创建启动和停止操作(docker版es、milvus、minio启动命令详解)
- docker-compose 开发代码(Docker Compose多容器部署的实现)
- netcorelinux后台运作(Linux系统Docker 部署 ASP.NET Core应用的流程分析)
- docker镜像如何打包(Docker打包镜像及修改配置的实现)
- docker 查看容器下进程(docker 查看容器日志命令的实现)
- idea 远程部署docker(通过idea打包项目到docker的操作方法)
- dockerfile映射目录(Dockerfile中ENTRYPOINT 和 CMD的区别说明)
- docker容器编排入门教程(简简单单使用Docker部署Confluence)
- linuxdocker命令使用教程(seata docker 高可用部署的详细介绍)
- docker时区问题和迁移数据问题(docker时区问题和迁移数据问题)
- 大众推出了第五代高尔夫GT(大众推出了第五代高尔夫GT)
- 换代在即,现在是抄底 7.5代 高尔夫的最佳时机吗(换代在即现在是抄底)
- 2020年大众7.5代高尔夫R终结特别版 最后的呐喊(2020年大众7.5代高尔夫R终结特别版)
- 七年前的这部剧有毒,全剧只有女主红到发紫,男主至今无人认识(七年前的这部剧有毒)
- 宋轶除了演过于曼丽,原来还演过一个青楼女子(宋轶除了演过于曼丽)
- 赵丽颖第一部当女主的戏,主角配角个个都是实力演员(赵丽颖第一部当女主的戏)
热门推荐
- nginx报错能看到错误代码(nginx提示:500 Internal Server Error错误的解决方法)
- sqlsever查看视图数据类型(SQL Sever查询语句大全集锦)
- sql datalength与len区别
- linux基础教程磁盘配额的设计(WDCP Linux服务器磁盘爆满的处理方法)
- python3安装编程环境(Python3 修改默认环境的方法)
- 织梦标签在哪里设置(织梦dedecms gbk站点转utf8之mip改造方案分享)
- vue动态路由实现权限控制(vue2/vue3路由权限管理的方法实例)
- 小程序开发者代码工具(解析从小程序开发者工具源码看原理实现)
- laravel关于视图使用语法(在laravel中使用with实现动态添加where条件)
- redis的scan命令的使用(scrapy-redis源码分析之发送POST请求详解)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9