赵走x博客
网站访问量:151459
首页
书籍
软件
工具
古诗词
搜索
登录
12、Ubuntu安装docker
11、Docker安装Wekan面板并修改访问端口
10、docker-compose限制内存, cpu资源以及固定ip写法
9、ubuntu卸载docker
8、Ubuntu 下修改docker的默认存储位置
7、记录以此mongodb突然不断重启的问题
6、Service 'XXX' failed to build: error pulling image configuration:
5、Centos安装Docker
4、docker-compose 提示没有docker-compose.yml文件,但明明存在
3、Docker容器时间与主机时间不一致的问题
2、删除无用docker镜像
1、ERROR: Version in "./docker-compose.yml" is unsupported.
7、记录以此mongodb突然不断重启的问题
资源编号:76524
微服务
docker相关问题
热度:101
参考:https://www.jianshu.com/p/b316a9b5e36a,https://blog.csdn.net/putiancaijunyu/article/details/86485531,https://blog.csdn.net/isea533/article/details/95197468
# 问题 docker启动的mongodb不断重启,查看日志: ``` /data/db/journal/WiredTigerTmplog.0000000001: handle-write: pwrite: failed ,,, Jan 14 14:21:55 localhost mongod[677]: 2019-01-14T14:21:55.943+0800 E STORAGE [thread1] WiredTiger (28) [1547446915:943815][677:0x7f93ffeca0], file:WiredTiger.wt, WT_SESSION.checkpoint: /data/db/WiredTiger.turtle.set: handle-write: pwrite: failed to write 980 bytes at offset 0: No space left on device Jan 14 14:21:55 localhost mongod[677]: 2019-01-14T14:21:55.947+0800 E STORAGE [thread1] WiredTiger (28) [1547446915:947427][677:0x7f93ffeca0], file:WiredTiger.wt, WT_SESSION.checkpoint: /data/db/WiredTiger.turtle.set: handle-write: pwrite: failed to write 980 bytes at offset 0: No space left on device Jan 14 14:21:55 localhost mongod[677]: 2019-01-14T14:21:55.950+0800 E STORAGE [thread1] WiredTiger (28) [1547446915:950435][677:0x7f93ffeca0], checkpoint-server: checkpoint server error: No space left on device ``` # 寻找问题 执行:df -h发现: ``` Filesystem Size Used Avail Use% Mounted on udev 2.0G 4.0K 2.0G 1% /dev tmpfs 396M 392K 395M 1% /run /dev/vda1 40G 40G 0 100% / none 4.0K 0 4.0K 0% /sys/fs/cgroup none 5.0M 0 5.0M 0% /run/lock none 2.0G 0 2.0G 0% /run/shm none 100M 0 100M 0% /run/user overflow 1.0M 32K 992K 4% /tmp ``` !!!磁盘满了! 我再查du -sh /* --exclude proc: ``` 9.6M /bin 93M /boot 4.0K /dev 5.8M /etc 56M /home 0 /initrd.img 0 /initrd.img.old 710M /lib 8.0K /lib64 16K /lost+found 4.0K /media 4.0K /mnt 65M /opt 84M /root 392K /run 8.5M /sbin 4.0K /srv 0 /sys 32K /tmp 1.6G /usr 37G /var 0 /vmlinuz 0 /vmlinuz.old ``` /var下面37G深深刺激着我。 我再查:du -hs /var/* ``` 1.5M /var/backups 357M /var/cache 535M /var/lib 4.0K /var/local 0 /var/lock 1.7G /var/log 4.0K /var/mail 4.0K /var/opt 0 /var/run 24K /var/spool 4.0K /var/tmp 35G /var/lib ``` 再查:du -hs /var/lib/docker/* ``` 20K /var/lib/docker/builder 72K /var/lib/docker/buildkit 83M /var/lib/docker/containers 41M /var/lib/docker/image 96K /var/lib/docker/network 29G /var/lib/docker/overlay2 20K /var/lib/docker/plugins 4.0K /var/lib/docker/runtimes 4.0K /var/lib/docker/swarm 4.0K /var/lib/docker/tmp 4.0K /var/lib/docker/trust 301M /var/lib/docker/volumes ``` docker缓存满了 # 解决方法: 执行: ``` docker system prune ``` # 分析 后来查了一下,才发现原来是mongodb已知的bug,就是journal log文件大小超标咯。Dockerd 日志过多,参考:http://stackoverflow.com/questions/31829587/docker-container-logs-taking-all-my-disk-space 可以参考如下几种解决方案: ### 1. 启动容器参数 参考:https://docs.docker.com/engine/reference/commandline/run/ 使用 --log-opt Log driver options 配置日志策略。 例如: --log-opt max-size=50m。 ### 2. 全局默认配置 在 daemon.json 中配置,linux 中默认位置为 /etc/docker。 配置示例: ``` { "log-driver": "json-file", "log-opts": { "max-size": "10m", "max-file": "3", "labels": "production_status", "env": "os,customer" } } ``` 日志配置参考:https://docs.docker.com/config/containers/logging/configure/ 完整 daemon.json 示例参考:https://docs.docker.com/engine/reference/commandline/dockerd/ 配置参数后需要重启 docker 服务。 ##### docker-compose 配置 参考:https://docs.docker.com/compose/compose-file/compose-file-v2/ 配置示例: ``` logging: options: max-size: '12m' max-file: '5' driver: json-file ``` 补充 写的比较急,贴的链接中都有非常完整的信息,应该都能解决此类问题。