更改 Docker 预设路径

因为最近 build docker image 非常频繁,导致 OS Disk 常常会爆满,因此想将 Docker 的预设路径改到另外挂载的 Data Disk 中,在这边做一个纪录。

本文环境

OS 版本

透过 sudo cat /etc/os-release 指令看出,使用的是 CentOS 7

NAME="CentOS Linux"VERSION="7 (Core)"ID="centos"ID_LIKE="rhel fedora"VERSION_ID="7"PRETTY_NAME="CentOS Linux 7 (Core)"ANSI_COLOR="0;31"CPE_NAME="cpe:/o:centos:centos:7"HOME_URL="https://www.centos.org/"BUG_REPORT_URL="https://bugs.centos.org/"CENTOS_MANTISBT_PROJECT="CentOS-7"CENTOS_MANTISBT_PROJECT_VERSION="7"REDHAT_SUPPORT_PRODUCT="centos"REDHAT_SUPPORT_PRODUCT_VERSION="7"

Docker 版本

透过 sudo docker -v 指令看出使用的是 v19.03.12 这个版本

Docker version 19.03.12, build 48a66213fe

需求

将 docker 的路径从预设的改到 /data/docker 底下

整体步骤

停止 docker

透过以下指令将 docker 停止,避免在更换的过程中还有服务在运作造成资料的误差

sudo systemctl stop docker

修改 daemon.json

透过 vim 修改 /etc/docker 路径底下的 daemon.json,加入 data-root 的 key,value 填上 /data/docker
[备注1] 如果没有 /etc/docker/daemon.json 这个档案的话可以自行建立一个
[备注2] 如果 docker 的版本低于 v17.05.0 的话可以使用 graph 这个 key

{    "data-root": "/data/docker"}

複製预设路径的档案至新的路径

在这边我们使用 rsync 来进行複製,rsync 有一个好处就是在複製的时候可以连同资料夹或档案的拥有者、群组或是权限设定都一併的複製过去,关于 rsync 的详细说明可以参考这里。

複製档案

由于 docker 的预设路径为 /var/lib/docker,因此我们要将这底下的所有资料都複製到 /data/docker 底下,透过以下指令可以完成这项需求

sudo rsync -avh /var/lib/docker/* /data/docker/

检查档案

複製完毕之后可以透过 ls 的方式检查 /data/docker 底下是否已经有相关的档案,没有问题的话应该要有以下这几个目录

builder  buildkit  containers  image  network  overlay2  plugins  runtimes  swarm  tmp  trust  volumes

启动 docker

完成以上步骤后,透过以下指令将 docker 进行启动

sudo systemctl start docker

检查是否正确

可以透过以下指令逐步检查 docker 环境是否有遗漏

//检查 docker imagedocker images//检查 containerdocker ps

小结

使用以上步骤就可以将 docker 的预设路径进行更改拉,如果大家有更好的方法欢迎在底下留言呦!

参考

https://medium.com/developer-space/how-to-change-docker-data-folder-configuration-33d372669056

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章