设置Docker运行时根目录
因第一次玩 Docker,装系统的时候没有分配 /var 分区,而500多G的剩余空间都分给了 /home。
当玩起 Docker,才发现这货默认存放位置是在 /var/lib/docker。
解决方法有以下:
方法一:重装系统、重新分区或者挂载新的磁盘到 /var/lib/docker,这也太不人性化了,忽略。。。下次部署 Docker 宿主机的时候得好好分区下。
方法二:改变 Docker 默认存放路径。
方法三:做链接
cd /var/lib/
mv docker/* /home/docker
rm -rf docker
ln -s /home/dockerfile/ /var/lib/docker
查了下手册发现: -g, –graph=”/var/lib/docker” 设置Docker运行时根目录
使用 –graph 参数:docker –graph=/opt/docker -d,会自动生成/opt/docker目录(0700),并在该目录下创建 docker 相关文件
原来的镜像和容器都找不到了,因为路径改了(原来的镜像是在/var/lib/docker/devicemapper/devicemapper/{data,metadata})
Docker 的配置文件可以设置大部分的后台进程参数,在各个操作系统中的存放位置不一致
在 ubuntu 中的位置是:/etc/default/docker
在 centos 中的位置是:/etc/sysconfig/docker
我使用 CentOS 7,所以只需要更改 vim /etc/sysconfig/docker 成
OPTIONS=--graph="/home/lib/docker" --selinux-enabled -H fd://
然后 service docker start 重新启动 Docker 的路径就改成 /home/lib/docker 了
Docker CE版本
json配置参数里 设置docker存储路径参数为 data-root
确保停止docker服务
# systemstl stop docker.service
修改/etc/docker/daemon.json文件值,文件不存在需手动创建
# vim /etc/docker/daemon.json
新增以下信息:
{
"data-root": "/opt/docker/data"
}
启动docker服务# systemstl start docker.service
docker info 验证Docker Root Dir的值 是否已修改为/opt/docker/data
–data-root是存储持久性数据(例如images,volumes和群集状态)的路径。 默认值为/var/lib/docker。 为了避免与其他守护程序发生任何冲突,请分别为每个守护程序设置此参数。