Docker問題:Docker默認路徑存儲空間不足,遷移Docker默認存儲目錄

問題

在docker使用用過程中出現,出現如下錯誤提示:

ERROR: Service 'XXX' failed to build: write /var/lib/docker/tmp/GetImageBlob239544438: no space left on device

原因

錯誤提示已經很明顯了,就是現在docker存儲路徑所在分區存儲空間不足,一般都是默認路徑/var/lib/dokcer,當然,這個原因引起的問題可能會有很多種,之前也也做到過,所以當docker忽然出現問題的時候,記得df -h看一下空閒的空間大小。

解決方案

此方案針對的系統環境和版本分別是:Contos 7Dokcer 17.03.2-ce,其他環境下並不一定有效。
  1. 關掉所有正在運行的容器

    docker stop $(docker ps -q -f status=running)
  2. 關閉docker服務

    systemctl stop docker
  3. 將Docker現目錄挪到一個新目錄下,這兩個目錄依照具體情況而定,我的分別是/var/lib/docker/home/docker

    mv /var/lib/docker /home/docker 
  4. 將原來的數據備份一份,備份大法好,萬一不行還不至於損壞數據

    tar zcf docker_file_bak.tar.gz /home/docker
  5. 修改服務啓動命令,服務的service文件爲/lib/systemd/system/docker.service,將裏面的內容ExecStart=/usr/bin/dockerd修改爲如下:

    ExecStart=/usr/bin/dockerd -g 新目錄
  6. 重新加載修改後的service文件

    systemctl daemon-reload
  7. 啓動Docker服務

    systemctl start docker
  8. 驗證修改成功

    docker info | grep "Docker Root Dir"

    可以看到結果已經是新的目錄

再次說明,該方案只在前面提到的環境下測試過,並不是所有的環境都試用,因爲之前在ubuntu 14.04和ubuntu 16.04上嘗試使用該方法都不能生效,後續再進行說明。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章