docker - 修改镜像/容器文件或者 "Docker root dir" 的在宿主机上的存储位置

时间:2022-02-25 00:23:54

 

背景

之前在使用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 - 修改镜像/容器文件或者 "Docker root dir" 的在宿主机上的存储位置

 

 

 
 

方法二 挂载新目录到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://*.com/questions/43649560/how-to-change-docker-daemon-root-directory-in-centos7