docker - 修改镜像/容器文件或者 "Docker root dir" 的在宿主机上的存储位置
背景
之前在使用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 添加:
参考:
https://www.lsproc.com/post/docker-faq/#toc_1
https://stackoverflow.com/questions/43649560/how-to-change-docker-daemon-root-directory-in-centos7
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步