Docker 默认安装的情况下,会使用 /var/lib/docker/
目录作为存储目录,用以存放拉取的镜像和创建的容器等。
不过由于此目录一般都位于系统盘,遇到系统盘比较小,而镜像和容器多了后就容易出问题,这里说明一下如何修改 Docker 的默认存储目录。
一、查看当前docker的默认存储目录
docker info # docker 存储目录 Docker Root Dir: /var/lib/dockerdocker info # docker 存储目录 Docker Root Dir: /var/lib/dockerdocker info # docker 存储目录 Docker Root Dir: /var/lib/docker
二、停止docker服务
systemctl stop dockersystemctl stop dockersystemctl stop docker
三、目录迁移
创建新的 docker 目录,执行命令 df -h
,找一个大的磁盘。
我在 /home
目录下面建了 /home/docker
目录,执行的命令是:
mkdir -p /home/dockermkdir -p /home/dockermkdir -p /home/docker
迁移 /var/lib/docker
目录下面的文件到 /home/docker
# 和cp类似,只不过是会自动过滤,目标目录有的文件不会重新拷贝 rsync -avz /var/lib/docker /home/docker# 和cp类似,只不过是会自动过滤,目标目录有的文件不会重新拷贝 rsync -avz /var/lib/docker /home/docker# 和cp类似,只不过是会自动过滤,目标目录有的文件不会重新拷贝 rsync -avz /var/lib/docker /home/docker
四、编辑/etc/docker/daemon.json文件
vim /etc/docker/daemon.jsonvim /etc/docker/daemon.jsonvim /etc/docker/daemon.json
默认情况下这个配置文件是没有的,可以新建一个,然后写入以下内容:
{ "graph": "/home/docker" }{ "graph": "/home/docker" }{ "graph": "/home/docker" }
取决于具体的 ubuntu
版本或者 kernel
版本决定要用 data-root
还是 graph
。
- Docker 17.05 及以后的版本使用 "data-root"。
- 旧版本可能使用 "graph",但建议升级到新版本。
在较新的 Docker 版本中,应该使用 "data-root" 配置项,而不是 "graph"。 "data-root或者graph": "/home/docker"
五、保存退出,然后重启 docker 服务
# reload配置文件 systemctl daemon-reload # 重启docker systemctl restart docker# reload配置文件 systemctl daemon-reload # 重启docker systemctl restart docker# reload配置文件 systemctl daemon-reload # 重启docker systemctl restart docker
如果 docker 启动失败,查看失败原因
systemctl status docker journalctl -u docker.service sudo journalctl -u docker --no-pagersystemctl status docker journalctl -u docker.service sudo journalctl -u docker --no-pagersystemctl status docker journalctl -u docker.service sudo journalctl -u docker --no-pager
六、检查docker存储路径是否配置成功
docker info | grep "Docker Root Dir" Docker Root Dir: /home/dockerdocker info | grep "Docker Root Dir" Docker Root Dir: /home/dockerdocker info | grep "Docker Root Dir" Docker Root Dir: /home/docker
如果修改失败,可以检查 Docker 服务启动参数:
查看 Docker 服务的启动参数,确保没有在命令行中指定 data-root
。
可以查看 /lib/systemd/system/docker.service
或 /etc/systemd/system/docker.service.d/
下的文件,看看是否有相关配置:
vim /etc/systemd/system/docker.service.d/docker-options.confvim /etc/systemd/system/docker.service.d/docker-options.confvim /etc/systemd/system/docker.service.d/docker-options.conf
自己手动配置 data-root
。
然后重启 docker,查看是否成功。
七、启动成功后,再确认之前的镜像还在
docker ps -a docker imagesdocker ps -a docker imagesdocker ps -a docker images
八、确定容器、镜像没问题后,删除/var/lib/docker/目录中的文件。
rm -rf /var/lib/docker/*rm -rf /var/lib/docker/*rm -rf /var/lib/docker/*
原文链接:https://blog.csdn.net/Guzarish/article/details/142154584?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522e35722db5102f7d261388a1c66f5731e%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=e35722db5102f7d261388a1c66f5731e&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~times_rank-10-142154584-null-null.nonecase&utm_term=%E9%A3%9E%E7%89%9BOS