Docker 默认将全部的数据(包罗镜像、容器、卷等)存储在 /var/lib/docker 目次下。这个目次默认被设置在体系的根分区大概较小的分区上。随着容器化应用的增长,大概 Docker 容器和镜像的数目增长,默认存储位置大概会敏捷填满,导致体系的根分区空间不敷,从而影响整个体系的运行。如果根分区或存储空间满了,Docker 就无法再拉取镜像或启动容器,这大概会导致服务制止。因此,将 Docker 存储目次迁徙到其他更大、更恰当存储的分区或硬盘上,可以有用克制这种标题。
目次
迁徙 Docker 存储目次的步调
1、制止 Docker 服务
2、检察 Docker 默认存储目次
3、创建新的存储路径
4、同步数据到新的存储路径(如果数据量太大,可以选择使用下面的mv下令)
5、修改 Docker 设置文件
6、重新启动 Docker 服务
7、验证 Docker 存储目次
迁徙 Docker 存储目次的步调
1、制止 Docker 服务
制止 Docker 服务,以克制在迁徙过程中 Docker 正在使用存储目次。运行以下下令制止 Docker 服务
2、检察 Docker 默认存储目次
使用以下下令检察 Docker 当前的存储目次路径
默认环境下,Docker 存储目次通常是 /var/lib/docker。
3、创建新的存储路径
创建新的存储目次,根据服务器存储巨细,指定存储路径。这里我将新目次设置为 /data/docker,你可以根据实际需求修改路径。
4、同步数据到新的存储路径(如果数据量太大,可以选择使用下面的mv下令)
使用 rsync 下令将 Docker 默认存储目次的数据同步到新的目次。
- rsync -av --progress /var/lib/docker/* /data/docker/
复制代码 使用 rsync 可以确保文件的完备性和权限稳定:
- -a 表现归档模式,保持文件的权限、时间戳等信息。
- -v 表现体现具体的输出。
- --progress 体现进度。
注意: 如果你决定使用 mv 下令,它会直接移动数据,而不是复制。mv 比 rsync 快,恰当在迁徙数据后不再生存旧数据的环境。但请确保新路径可用,并在迁徙完成后使用 mv 下令。
- mv /var/lib/docker/* /data/docker/
复制代码 mv 与 rsync 的区别:
- rsync 恰当迁徙大规模数据,支持增量备份和查抄文件差异,且可以生存文件权限和时间戳。
- mv 只是简单的移动文件或目次,速率较快,但没有查抄和增量功能,实用于已履历证新路径没有标题的环境。
5、修改 Docker 设置文件
如果不存在 Docker 设置文件 /etc/docker/daemon.json,则必要新建。编辑该文件并添加新的存储路径:
- vi /etc/docker/daemon.json
复制代码 在文件中添加大概修改如下设置,指定你创建的存储路径:
- "data-root": "/data/docker"
复制代码
注意: 如果是修改已有的设置,请确保在 JSON 格式中没有语法错误,尤其是在末了一行不要多加逗号。
扩展内容:registry-mirrors 配项,指定了多个 Docker 镜像堆栈的镜像源,Docker 默认使用 Docker Hub 作为镜像源,但由于网络带宽、速率等缘故原由,某些地域的用户访问 Docker Hub 时大概会遇到速率较慢的标题。通过设置镜像加速器或使用镜像源,可以或许进步 Docker 镜像的拉取速率。 以是有必要的话可以多加以下设置:
- "registry-mirrors": [
- "https://registry.docker-cn.com",
- "https://docker.registry.cyou",
- "https://docker-cf.registry.cyou",
- "https://dockercf.jsdelivr.fyi",
- "https://docker.jsdelivr.fyi",
- "https://dockertest.jsdelivr.fyi",
- "https://mirror.aliyuncs.com",
- "https://dockerproxy.com",
- "https://mirror.baidubce.com",
- "https://docker.m.daocloud.io",
- "https://docker.nju.edu.cn",
- "https://docker.mirrors.sjtug.sjtu.edu.cn",
- "https://docker.mirrors.ustc.edu.cn",
- "https://mirror.iscas.ac.cn",
- "https://docker.rainbond.cc",
- "http://hub-mirror.c.163.com",
- "https://docker.fxxk.dedyn.io",
- "https://huecker.io",
- "https://dockerhub.timeweb.cloud",
- "https://noohub.ru"
- ]
复制代码 6、重新启动 Docker 服务
修改完设置文件后,必要重新加载并启动 Docker 服务。起首实行以下下令重新加载 systemd 设置:
然后启动 Docker 服务:
- systemctl start docker.service
复制代码 检察Docker服务是否启动(如果启动失败查对一下/etc/docker/daemon.json设置):
- systemctl status docker.service
复制代码
7、验证 Docker 存储目次
再次使用以下下令确认 Docker 是否已乐成切换到新的存储目次:
- docker info | grep "Docker Root Dir"
复制代码 确认输出的新目次是 /data/docker
*如果允许没有标题可以把/var/lib/docker数据删除,节流空间。前面是mv利用的请忽略。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!qidao123.com:ToB企服之家,中国第一个企服评测及软件市场,开放入驻,技术点评得现金 |