解決docker容器存放目錄磁盤空間滿了問題

前言

docker所在服務器,運行了一段時間後,發現服務器磁盤目錄快不夠用了。經過du -h --max-depth=1 / 逐級目錄排查,發現/var/lib/docker目錄文件過大。經過如下方法,解決該問題。docker

轉移數據修改docker默認存儲位置

有多種方式修改docker默認存儲位置。
最好是在docker安裝完後,第一時間修改docker默認存儲位置爲其餘大目錄或者磁盤中。規避遷移數據過程當中形成的風險。服務器

  • 中止docker服務
    systemctl stop docker
  • 建立新的docker目錄,執行命令df -h,找一個大的磁盤
    我在 /home目錄下面建了/home/modules/docker/lib目錄
    mkdir -p /home/modules/docker/lib
  • 遷移/var/lib/docker目錄下面的文件到/home/modules/docker/lib
    遷移後的完成docker路徑:/home/modules/docker/lib/docker
    rsync -avz /var/lib/docker/ /home/modules/docker/lib/
  • 配置 /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
    devicemapper.conf添加以下內容:
    [Service]
    ExecStart=
    ExecStart=/usr/bin/dockerd  --graph=/home/modules/docker/lib/docker
  • 重啓docker
    systemctl daemon-reload
    systemctl restart docker
    systemctl enable docker
  • 確認Docker Root Dir修改是否已經生效
    [root@iZbp1jcwx7sfb1yrnvpg84Z docker]# docker info
    ...
    Docker Root Dir: /home/modules/docker/lib/docker
    Debug Mode (client): false
    Debug Mode (server): false
    Registry: https://index.docker.io/v1/
    ...
  • 啓動成功後,再確認以前的鏡像是否還在
    [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
  • 肯定容器沒問題後刪除/var/lib/docker/目錄中的文件

參考連接:https://blog.csdn.net/weixin_32820767/article/details/81196250app

相關文章
相關標籤/搜索