【CentOS 7】记一次迁移 Docker 容器存储目录的操作过程
程序员文章站
2022-07-13 08:04:06
...
一、场景描述
在默认情况下, Docker
镜像的默认存储路径是 /var/lib/docker
,这相当于直接挂在系统目录下。而一般在搭建系统时,这个区都不会太大。所以如果长期使用 Docker
开发应用,就需要把默认的路径更改到存储空间大的外挂存储磁盘下。
-
查看
Docker
目录信息[[email protected] /]# docker info | grep Dir Docker Root Dir: /var/lib/docker
-
查看
Docker
所有信息[[email protected] /]# docker info
二、处理方案
方案一,修改镜像和容器的存放路径
-
停止
Docker
容器systemctl stop docker
-
创建
Docker
容器预存储的目录# 将 Docker 产生的资源保存到此处 mkdir -p /opt/lib/docker
-
将现有的项目资源迁移到新的规划目录
mv /var/lib/docker/* /opt/lib/docker/
-
修改
Docker
存储目录配置# 编辑 Docker 配置文件 vim /usr/lib/systemd/system/docker.service # 注释掉原有配置,再新增如下 #ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock (注释原先的) ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --graph=/opt/lib/docker(新增的)
-
重新启动
Docker
容器# 重新加载配置 systemctl daemon-reload # 重启 Docker 引擎 systemctl restart docker
-
查看变更效果
[[email protected] /]# systemctl daemon-reload [[email protected] /]# systemctl restart docker [[email protected] /]# docker info | grep Dir Docker Root Dir: /opt/lib/docker
方案二,软链接
-
停止
Docker
容器systemctl stop docker
-
创建
Docker
容器预存储的目录# 将 Docker 产生的资源保存到此处 mkdir -p /opt/lib/docker
-
将现有的项目资源迁移到新的规划目录
mv /var/lib/docker/* /opt/lib/docker/
-
为
Docker
默认路径创建软链接到预设保存路径ln -s /opt/lib/docker /var/lib/docker
-
重新启动
Docker
容器# 重新加载配置 systemctl daemon-reload # 重启 Docker 引擎 systemctl restart docker
-
重启
Docker
以后发现存储目录依旧在/var/lib/docker
但是实际上是存储在预设的数据盘了。
上一篇: 记一次DB2存储过程的创建
下一篇: 记一次RMAN全备恢复