更改 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
。
-
备份现有配置文件:
如果配置文件已经存在,可以先备份,以便恢复:
sudo cp /etc/docker/daemon.json /etc/docker/daemon.json.bak
-
创建或更新
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 数据时。
评论区