在linux下通常docker都是默認安裝的,且默認的鏡像,容器存儲路徑都位於/var/lib/docker中,可以通過docker info命令來查看,如下:
$ docker info Containers: 12 Images: 41 Storage Driver: aufs Root Dir: /var/lib/docker/ Backing Filesystem: extfs Dirs: 66 Dirperm1 Supported: false Execution Driver: native-0.2 Logging Driver: json-file Kernel Version: 3.13.0-32-generic Operating System: Ubuntu 14.04.1 LTS CPUs: 1 Total Memory: 1.954 GiB Name: iZ23mtq8bs1Z ID: M5N4:K6WN:PUNC:73ZN:AONJ:AUHL:KSYH:2JPI:CH3K:O4MK:6OCX:5OYW
有時 / 根目錄不是很大,就容易造成存儲不夠,像我的機器 / 根目錄30G,就不夠用了,而/home當時就給分配了500G,接受教訓,如果是自己用而且都是默認安裝 / 根目錄一定要分配的大一點,/home可以不用這么大。
解決docker容器存放目錄磁盤空間滿了問題
前言
docker所在服務器,運行了一段時間后,發現服務器磁盤目錄快不夠用了。通過
du -h --max-depth=1 /
逐級目錄排查,發現/var/lib/docker目錄文件過大。通過以下方法,解決該問題。
轉移數據修改docker默認存儲位置
有多種方式修改docker默認存儲位置。
最好是在docker安裝完后,第一時間修改docker默認存儲位置為其他大目錄或者磁盤中。規避遷移數據過程中造成的風險。
1.停止docker服務
systemctl stop docker
2.創建新的docker目錄,執行命令df -h,找一個大的磁盤
我在 /home目錄下面建了/home/docker/lib目錄
mkdir -p /home/docker/lib
3.遷移/var/lib/docker目錄下面的文件到/home/docker/lib
遷移后的完成docker路徑:/home/docker/lib/docker
rsync -avz /var/lib/docker/ /home/docker/lib/
4.配置 /etc/systemd/system/docker.service.d/devicemapper.conf
查看/etc/systemd/system/docker.service.d目錄及devicemapper.conf是否存在。如果不存在,就新建
查看/etc/systemd/system/docker.service.d目錄及devicemapper.conf是否存在。如果不存在,就新建
mkdir -p /etc/systemd/system/docker.service.d/
vi /etc/systemd/system/docker.service.d/devicemapper.conf
5. devicemapper.conf添加如下內容:
[Service] ExecStart= ExecStart=/usr/bin/dockerd --graph=/home/docker/lib/docker
6.重啟docker
systemctl daemon-reload
systemctl restart docker
systemctl enable docker
7.確認Docker Root Dir修改是否已經生效
[root@iZbp1jcwx7sfb1yrnvpg84Z docker]# docker info ... Docker Root Dir: /home/docker/lib/docker Debug Mode (client): false Debug Mode (server): false Registry: https://index.docker.io/v1/ ...
8.啟動成功后,再確認之前的鏡像是否還在
[root@iZbp1jcwx7sfb1yrnvpg84Z docker]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE 10.80.177.233/policy 2.1.2 64ac4e178cd2 2 hours ago 818 MB 10.80.177.233/crm 2.1.3 d7636fbb7a29 2 hours ago 762 MB
9.確定容器沒問題后刪除/var/lib/docker/目錄中的文件