Author:rab
Linux Version:CentOS 7.9
Docker Version:18.06.3
会存在这样一种情况,当我们安装 Docker 的时候,如果不修改默认数据存储路径的话,其一般默认为 /var/lib/docker/
,该目录是挂载于我们服务器系统盘(/)下的,当你后面运行的容器和下载的镜像越来越多时,就会导致磁盘空间被占满,从而无法登录操作系统。此时,就需要调整 Docker 的数据存储目录了。
1、yum 安装 Docker
这里以 yum 方式安装的 Docker 来举例
# 其实不管那种方式部署的Docker,其实原理都一样,掌握一种即可。
2、查看默认路径
docker info |grep 'Docker Root Dir'
3、创建数据存储目录
mkdir /home/data/docker
4、修改配置文件(默认路径)
常用三种方法修改默认数据存储路径的方法(三选一即可)
-
修改配置
daemon.json
# 停止所有正在运行的容器 docker stop $(docker ps -a | awk '{ print $1}' | tail -n +2) # 停止docker服务 systemctl stop docker.service # 修改配置 vim /etc/docker/daemon.json { "registry-mirrors": ["https://q1rw9tzz.mirror.aliyuncs.com"], "graph": "/home/data/docker" } # 启动docker服务 systemctl start docker.service
⚠:重启后,你会发现所有容器和镜像都消失了,那是因为你的 Docker 的数据目录改变了,而旧数据还在原来的
/var/lib/docker/
下,所以此时你是看不到有任何容器和镜像的。解决方法就是:将默认数据
/var/lib/docker/
替换新数据/home/data/docker
后,再次重启即可。所以在部署 Docker 的时候就应该先规划好相关路径。 -
修改
systemd
管理脚本vim /lib/systemd/system/docker.service ... ExecStart=/usr/bin/dockerd --graph /home/data/docker ...
# 重载 systemctl daemon-reload # 重启 systemctl restart docker.service
-
软链接方式(推荐)
# 查看docker默认数据存储路径容量大小 [root@jenkins-node1 data]# cd /var/lib/docker [root@jenkins-node1 docker]# du -sh
# mv移动到新的数据目录,并做软链接 [root@jenkins-node1 data]# mv /var/lib/docker /home/data/ [root@jenkins-node1 data]# ln -s /home/data/docker /var/lib/docker [root@jenkins-node1 data]# ll /var/lib/docker lrwxrwxrwx 1 root root 17 Jul 22 12:15 /var/lib/docker -> /home/data/docker # 重启一下Docker systemctl start docker.service # 注意:不要直接将空目录/home/data/docker软链接到docker默认的数据目录上 # 因为这样会导致数据目标链接的数据被清空,所以先mv一下在做软链接(除非你确认你的目标数据可以被覆盖)
至此,Docker 默认数据目录修改完成!!