背景
之前在使用docker的時候,由於啟動container的時候用的是默認的mount(路徑為 /var/lib/docker),這個目錄對應的硬盤空間有限,只有200G左右。現在隨着程序運行,有大量的數據生成。硬盤空間就悲劇了。。。。
現在的想法是,宿主機上還有一塊大硬盤空間,需要docker把數據放到大硬盤上。
解決方案
方法一 修改 docker daemon 的啟動參數 -g, --graph=""
Path to use as the root of the Docker runtime. Default is /var/lib/docker.
如 docker -d --graph=/opt/docker
注: 這種方式只會臨時修改,如果重啟 docker daemon,就又會回到默認值。。。
我們可以通過修改 docker daemon的配置文件的方式來保存我們修改,方法如下:
默認情況下,docker daemon 會有一個默認的configuration 文件,此外,我們可以新建一個名為“daemon.json”文件的文件,我們在這個文件中的定義,會覆蓋默認配置文件的內容文件。
#cd etc/docker
#vim daemon.json
在這個文件里面加入我們的內容,即修改docker daemon 的 Rootpath
{ "graph": "/data/docker" }
重新 load 配置
# systemctl daemon-reload
重新啟動 docker daemon
# systemctl restart docker.service
此時,我們再來看 docker 的信息,docker root dir 已經更改:
# docker info
方法二 掛載新目錄到docker根目錄
mount -o bind /var/lib/docker /opt/docker
永久修改在需要在 /etc/fatab 添加:
/opt/docker /var/lib/docker none bind 0 0
參考:
https://www.lsproc.com/post/docker-faq/#toc_1
https://stackoverflow.com/questions/43649560/how-to-change-docker-daemon-root-directory-in-centos7