因第一次玩 Docker,装系统的时候没有分配 /var 分区,而500多G的剩余空间都分给了 /home。
当玩起 Docker,才发现这货默认存放位置是在 /var/lib/docker。
解决方法有二:
法有一:重装系统、重新分区或者挂载新的磁盘到 /var/lib/docker,这也太不人性化了,忽略。。。下次部署 Docker 宿主机的时候得好好分区下。
法有二:改变 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 了
2019/10/18日更新
Docker CE版本
json配置参数里 设置docker存储路径参数为 data-root
"data-root": "/data/docker"
--data-root是存储持久性数据(例如images,volumes和群集状态)的路径。 默认值为/var/lib/docker。 为了避免与其他守护程序发生任何冲突,请分别为每个守护程序设置此参数。
详细参数请参考官方文档: https://docs.docker.com/engine/reference/commandline/dockerd/#/linux-configuration-file
文章评论
哈哈,我第一次也遇到这情况了。
不过我当时是虚拟机环境,果断回滚快照了。