背景
Docker安装之后未加以管理,导致镜像和容器越来越多,占满了挂载盘,导致容器启动失败
解决
我们可以通过简单的df -h命令查看一下磁盘使用情况,也可以看到docker默认的数据存储位置:/var/lib/docker
也可以通过一下命令查看真正的存储/安装路径:
docker info | grep "Docker Root Dir"
准备工作:
备份数据!备份数据!备份数据!
我的目标迁移路径为:/data/software/docker
- 复制原 Docker 安装(存储)目录到新的路径下
cp -a /var/lib/docker /data/software/
- 备份原数据
mv -u /var/lib/docker /var/lib/docker.bak
开搞
方案一: 创建软连接方式修改docker存储路径
- 关停 Docker 服务
systemctl stop docker
- 新建一个 /var/lib/docker 的软链给目标路径
ln -fs /data/software/docker /var/lib/docker
- 重启 Docker 服务
systemctl start docker
重启之后一顿操作docker确定没问题后再删除备份数据,在以后关于容器的操作存储路径由于软链的设置就会进入/data/software/docker目录下
方案二: 直接修改 Docker 配置文件
最新版本的docker可以通过修改(新建)/etc/docker/daemon.json,指定 data-root 参数的值来达到修改存储位置的目的。
-
编辑daemon.json文件
vim /etc/docker/daemon.json
-
写入以下内容
{ "data-root": "/data/software/docker", "storage-driver": "overlay2" # 这个是 Docker 是默认设置,可有可无 }
-
重启docker服务
systemctl restart docker