修改docker的默认存储位置及镜像存储位置

Docker 默认安装的情况下,会使用 /var/lib/docker/ 目录作为存储目录,用以存放拉取的镜像和创建的容器等。

不过由于此目录一般都位于系统盘,遇到系统盘比较小,而镜像和容器多了后就容易出问题,这里说明一下如何修改 Docker 的默认存储目录。

一、查看当前docker的默认存储目录

docker info # docker 存储目录 Docker Root Dir: /var/lib/docker
docker info # docker 存储目录 Docker Root Dir: /var/lib/docker
docker info # docker 存储目录 Docker Root Dir: /var/lib/docker

二、停止docker服务

systemctl stop docker
systemctl stop docker
systemctl stop docker

三、目录迁移

创建新的 docker 目录,执行命令 df -h,找一个大的磁盘。

我在 /home 目录下面建了 /home/docker 目录,执行的命令是:

mkdir -p /home/docker
mkdir -p /home/docker
mkdir -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.json
vim /etc/docker/daemon.json
vim /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-pager
systemctl status docker journalctl -u docker.service sudo journalctl -u docker --no-pager
systemctl status docker journalctl -u docker.service sudo journalctl -u docker --no-pager

六、检查docker存储路径是否配置成功

docker info | grep "Docker Root Dir" Docker Root Dir: /home/docker
docker info | grep "Docker Root Dir" Docker Root Dir: /home/docker
docker 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.conf
vim /etc/systemd/system/docker.service.d/docker-options.conf
vim /etc/systemd/system/docker.service.d/docker-options.conf

自己手动配置 data-root

然后重启 docker,查看是否成功。

七、启动成功后,再确认之前的镜像还在

docker ps -a docker images
docker ps -a docker images
docker 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

© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享