【举栗子】Docker 容器磁盘占满的几种情况 | CSDN博文精选
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                【举栗子】Docker 容器磁盘占满的几种情况 | CSDN博文精选
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                
                            
                            
                            戳藍字“CSDN云計算”關注我們哦!作者 |??isea533
轉自 | CSDN博客責編 | 阿禿
參考文檔:
https://docs.docker.com/engine/reference/commandline/dockerd/應用日志過多
默認情況下,每個 Docker 容器都有 10G 的存儲空間,當超出該大小時,容器就會出現問題。可以參考官方文檔 dm.basesize 參數的說明來修改默認的容器大小:指定創建基本設備時要使用的大小,這會限制圖像和容器的大小。默認值為10G。請注意,精簡設備本質上是“稀疏的”,因此大多數空的10G設備不會在池上使用10 GB的空間。但是,文件系統將為空盒使用更多空間,設備越大。可以在守護進程重啟時增加基本設備大小,這將允許所有未來的圖像和容器(基于這些新圖像)具有新的基本設備大小。例子:$ sudo dockerd --storage-opt dm.basesize=50G
這將使基本設備大小增加到50G。如果現有基本設備大小大于50G,Docker守護程序將拋出錯誤。用戶可以使用此選項擴展基本設備大小,但不允許縮小。此值會影響系統范圍的“基本”空文件系統,該文件系統可能已被拉出的圖像初始化和繼承。通常,更改此值需要執行其他步驟:$?sudo?service?docker?stop$?sudo?rm?-rf?/var/lib/docker$ sudo service docker start我在這里遇到的問題是因為某個模塊會在 10 分鐘內輸出 1G 的日志,修改日志策略后可以解決該問題。Dockerd 日志過多
有一個 GitLab 的 docker 服務,運行幾個月后就會出現無法 push 和 pull 的情況,原因都是因為 /var/lib/docker 磁盤空間已滿導致的。而導致磁盤空間占滿的原因是因為 dockerd 的日志占用了十幾G的空間導致的。日志文件的路徑形如: /var/lib/docker/containers/CONTAINER_ID/CONTAINER_ID-json.log
參考:https://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/
配置示例:logging: options: max-size: '12m' max-file: '5' driver:?json-file
???掃描下方二維碼,閱讀原文喲。
福利掃描添加小編微信,備注“姓名+公司職位”,入駐【CSDN博客】,加入【云計算學習交流群】,和志同道合的朋友們共同打卡學習!
                        
                        
                        轉自 | CSDN博客責編 | 阿禿
參考文檔:
https://docs.docker.com/engine/reference/commandline/dockerd/應用日志過多
默認情況下,每個 Docker 容器都有 10G 的存儲空間,當超出該大小時,容器就會出現問題。可以參考官方文檔 dm.basesize 參數的說明來修改默認的容器大小:指定創建基本設備時要使用的大小,這會限制圖像和容器的大小。默認值為10G。請注意,精簡設備本質上是“稀疏的”,因此大多數空的10G設備不會在池上使用10 GB的空間。但是,文件系統將為空盒使用更多空間,設備越大。可以在守護進程重啟時增加基本設備大小,這將允許所有未來的圖像和容器(基于這些新圖像)具有新的基本設備大小。例子:$ sudo dockerd --storage-opt dm.basesize=50G
這將使基本設備大小增加到50G。如果現有基本設備大小大于50G,Docker守護程序將拋出錯誤。用戶可以使用此選項擴展基本設備大小,但不允許縮小。此值會影響系統范圍的“基本”空文件系統,該文件系統可能已被拉出的圖像初始化和繼承。通常,更改此值需要執行其他步驟:$?sudo?service?docker?stop$?sudo?rm?-rf?/var/lib/docker$ sudo service docker start我在這里遇到的問題是因為某個模塊會在 10 分鐘內輸出 1G 的日志,修改日志策略后可以解決該問題。Dockerd 日志過多
有一個 GitLab 的 docker 服務,運行幾個月后就會出現無法 push 和 pull 的情況,原因都是因為 /var/lib/docker 磁盤空間已滿導致的。而導致磁盤空間占滿的原因是因為 dockerd 的日志占用了十幾G的空間導致的。日志文件的路徑形如: /var/lib/docker/containers/CONTAINER_ID/CONTAINER_ID-json.log
參考:https://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/
{ "authorization-plugins": [], "data-root": "", "dns": [], "dns-opts": [], "dns-search": [], "exec-opts": [], "exec-root": "", "experimental": false, "features": {}, "storage-driver": "", "storage-opts": [], "labels": [], "live-restore": true, "log-driver": "json-file", "log-opts": { "max-size": "10m", "max-file":"5", "labels": "somelabel", "env": "os,customer" }, "mtu": 0, "pidfile": "", "cluster-store": "", "cluster-store-opts": {}, "cluster-advertise": "", "max-concurrent-downloads": 3, "max-concurrent-uploads": 5, "default-shm-size": "64M", "shutdown-timeout": 15, "debug": true, "hosts": [], "log-level": "", "tls": true, "tlsverify": true, "tlscacert": "", "tlscert": "", "tlskey": "", "swarm-default-advertise-addr": "", "api-cors-header": "", "selinux-enabled": false, "userns-remap": "", "group": "", "cgroup-parent": "", "default-ulimits": { "nofile": { "Name": "nofile", "Hard": 64000, "Soft": 64000 } }, "init": false, "init-path": "/usr/libexec/docker-init", "ipv6": false, "iptables": false, "ip-forward": false, "ip-masq": false, "userland-proxy": false, "userland-proxy-path": "/usr/libexec/docker-proxy", "ip": "0.0.0.0", "bridge": "", "bip": "", "fixed-cidr": "", "fixed-cidr-v6": "", "default-gateway": "", "default-gateway-v6": "", "icc": false, "raw-logs": false, "allow-nondistributable-artifacts": [], "registry-mirrors": [], "seccomp-profile": "", "insecure-registries": [], "no-new-privileges": false, "default-runtime": "runc", "oom-score-adjust": -500, "node-generic-resources": ["NVIDIA-GPU=UUID1", "NVIDIA-GPU=UUID2"], "runtimes": { "cc-runtime": { "path": "/usr/bin/cc-runtime" }, "custom": { "path": "/usr/local/bin/my-runc-replacement", "runtimeArgs": [ "--debug" ] } }, "default-address-pools":[{"base":"172.80.0.0/16","size":24}, {"base":"172.90.0.0/16","size":24}] }配置參數后需要重啟 docker 服務。docker-compose 配置參考: https://docs.docker.com/compose/compose-file/compose-file-v2/配置示例:logging: options: max-size: '12m' max-file: '5' driver:?json-file
???掃描下方二維碼,閱讀原文喲。
福利掃描添加小編微信,備注“姓名+公司職位”,入駐【CSDN博客】,加入【云計算學習交流群】,和志同道合的朋友們共同打卡學習!
推薦閱讀:
總結
以上是生活随笔為你收集整理的【举栗子】Docker 容器磁盘占满的几种情况 | CSDN博文精选的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: boost::contract模块实现代
- 下一篇: boost::contract模块实现条
