新版docker存储目录迁移教程

新版docker存储目录迁移教程

      • 前言
      • 查看磁盘大小
      • 停止docker服务
      • 创建新目录
      • 拷贝原数据
      • 查找docker.service文件位置
      • 修改docker.service文件
      • 重启docker
      • 确认修改
      • 再次确认

前言

docker默认数据存储目录为/var/lib/docker,在docker的使用中随着下载镜像越来越多,构建镜像、运行容器越来越多, 数据目录必然会逐渐增大;当所有docker镜像、容器对磁盘的使用达到上限时,就需要对数据目录进行迁移。

查看磁盘大小

[root@localhost system]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
devtmpfs                  16G     0   16G    0% /dev
tmpfs                     16G     0   16G    0% /dev/shm
tmpfs                     16G   12M   16G    1% /run
tmpfs                     16G     0   16G    0% /sys/fs/cgroup
/dev/mapper/centos-root   50G   40G   11G   80% /
/dev/mapper/centos-home  957G   14G  944G    2% /home
/dev/vda1               1014M  152M  863M   15% /boot
tmpfs                    3.2G     0  3.2G    0% /run/user/0

此处,我们可以看到,home的存储空间最大,我们将docker迁移到这个目录下。

停止docker服务

systemctl stop docker

创建新目录

mkdir -p /home/docker/lib

拷贝原数据

cp -r /var/lib/docker/ /home/docker/lib/

查找docker.service文件位置

[root@localhost system]# systemctl status docker.service
● docker.service - Docker Application Container Engine
   ############# 我们可以看到docker.service的存储位置在/etc/systemd/system/docker.service
   Loaded: loaded (/etc/systemd/system/docker.service; enabled; vendor preset: disabled)
   Active: inactive (dead) since 四 2023-06-29 18:20:51 CST; 14min ago
     Docs: https://docs.docker.com
  Process: 1154 ExecStart=/usr/bin/dockerd (code=exited, status=0/SUCCESS)
 Main PID: 1154 (code=exited, status=0/SUCCESS)

修改docker.service文件

vim /etc/systemd/system/docker.service
### 找到 ExecStart=/usr/bin/dockerd 配置,新增--data-root=/home/docker/lib/docker

### 原配置
ExecStart=/usr/bin/dockerd

### 修改后配置
### 新版docker使用--data-root,旧版使用--graph=/home/docker/lib/docker
ExecStart=/usr/bin/dockerd --data-root=/home/docker/lib/docker

重启docker

systemctl daemon-reload
systemctl restart docker
systemctl enable docker

确认修改

docker info

执行结果

...
### 看到此处代表已经修改成功了
 Docker Root Dir: /home/docker/lib/docker
...

再次确认

df
overlay                 1003251076 14163212 989087864    2% /home/docker/lib/docker/overlay2/2f487483e581469c5731a20e4f775591caaeb8634ea3c6a8a325c15cd877ab1f/merged
overlay                 1003251076 14163212 989087864    2% /home/docker/lib/docker/overlay2/52ecff0880adeee2444dabd749259f589f2311d84479563cd0561025e200321d/merged
overlay                 1003251076 14163212 989087864    2% /home/docker/lib/docker/overlay2/6fb351e9034522ef64ba94056c1e957dd62cde9e4a508300021a12d63dc20d0b/merged

你可能感兴趣的:(docker,容器)