侧边栏壁纸
  • 累计撰写 55 篇文章
  • 累计创建 7 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

如何将 Docker 数据目录更改为自定义路径(例如 /mnt/vdb)

米粒儿
2025-01-24 / 0 评论 / 0 点赞 / 21 阅读 / 0 字
温馨提示:
本文最后更新于2025-01-28,若内容或图片失效,请留言反馈。 部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

更改 Docker 默认安装路径到 /mnt/vdb

目标

默认情况下,Docker 会将其数据存储在 /var/lib/docker 路径下。如果你希望将 Docker 的默认数据存储路径更改为 /mnt/vdb/docker,可以通过以下步骤实现。这在有特别存储需求时尤其有用,比如你想把 Docker 数据存储到一个独立的磁盘或者分区上。

步骤

1. 确保安装 pip 和 Docker

首先,确保 Docker 已经安装并正常运行。你可以通过以下命令检查:

docker --version

如果没有安装 Docker,请参考 Docker 官方文档 进行安装。

2. 创建目标目录

执行以下命令创建新的目录 /mnt/vdb/docker,并确保 Docker 有权限写入:

sudo mkdir -p /mnt/vdb/docker
sudo chown -R root:root /mnt/vdb/docker
sudo chmod -R 755 /mnt/vdb/docker

3. 修改 Docker 配置文件

Docker 使用 /etc/docker/daemon.json 配置文件来指定数据存储路径。我们需要修改这个配置文件,将数据根目录 (data-root) 设置为 /mnt/vdb/docker

  1. 备份现有配置文件

    如果配置文件已经存在,可以先备份,以便恢复:

    sudo cp /etc/docker/daemon.json /etc/docker/daemon.json.bak
    
    
  2. 创建或更新 daemon.json 配置文件

    使用 cat 命令创建或编辑 /etc/docker/daemon.json 文件,设置数据目录:

    sudo bash -c 'cat > /etc/docker/daemon.json <<EOL
    {
      "data-root": "/mnt/vdb/docker"
    }
    EOL'
    
    

4. 停止 Docker 服务

在修改配置文件之前,我们需要停止 Docker 服务:

sudo systemctl stop docker
sudo systemctl stop docker.socket

5. 移动现有 Docker 数据

如果 Docker 已经安装,并且 /var/lib/docker 目录下有数据,你可以将现有的 Docker 数据迁移到新的路径 /mnt/vdb/docker

sudo mv /var/lib/docker/* /mnt/vdb/docker/

6. 重新加载 Docker 配置并启动服务

配置文件修改和数据迁移完成后,我们需要重新加载 Docker 服务,使其生效:

sudo systemctl daemon-reload
sudo systemctl start docker

7. 验证配置

最后,我们需要验证 Docker 是否已成功使用新的数据存储路径。运行以下命令:

docker info | grep "Docker Root Dir"

如果显示 /mnt/vdb/docker,则说明修改成功。

完整一键脚本

以下是一个完整的 Bash 脚本,可以自动执行上述所有步骤:

#!/bin/bash

# 创建新的安装目录 /mnt/vdb(如果不存在)
mkdir -p /mnt/vdb/docker

# 确保目录权限正确
sudo chown -R root:root /mnt/vdb/docker
sudo chmod -R 755 /mnt/vdb/docker

# 备份现有的 Docker 配置文件
if [ -f /etc/docker/daemon.json ]; then
    cp /etc/docker/daemon.json /etc/docker/daemon.json.bak
fi

# 修改 Docker 配置文件,改变默认的安装路径
echo "Modifying Docker configuration to use /mnt/vdb as the installation path..."

# 创建或更新 Docker 配置文件,设置新的数据目录
cat > /etc/docker/daemon.json <<EOL
{
  "data-root": "/mnt/vdb/docker"
}
EOL

# 停止 Docker 服务
echo "Stopping Docker service..."
sudo systemctl stop docker
sudo systemctl stop docker.socket

# 移动当前 Docker 数据到新的路径
echo "Moving Docker data to /mnt/vdb/docker..."
sudo mv /var/lib/docker/* /mnt/vdb/docker/

# 更新 Docker 服务,重新加载配置
echo "Reloading Docker service..."
sudo systemctl daemon-reload

# 启动 Docker 服务
echo "Starting Docker service..."
sudo systemctl start docker

# 验证 Docker 是否正常工作
echo "Verifying Docker..."
docker info | grep "Docker Root Dir"

结语

通过以上步骤,你成功将 Docker 的默认数据存储路径更改为 /mnt/vdb/docker。这对存储需求较大的用户特别有用,尤其是在使用独立磁盘或分区存储 Docker 数据时。


0

评论区