生产环境规范部署docker
#!/bin/bash
# 定义旧的和新的 Docker 数据目录
old_dir="/var/lib/docker"
new_dir="/data/docker"
# 确保脚本以 root 权限运行
if [ "$(id -u)" != "0" ]; then
echo "这个脚本需要以 root 权限运行" 1>&2
exit 1
fi
# 停止 Docker 服务
echo "正在停止 Docker 服务..."
systemctl stop docker
# 检查新目录是否已存在
if [ ! -d "$new_dir" ]; then
echo "新目录不存在,正在创建..."
mkdir -p "$new_dir"
fi
# 移动 Docker 数据目录
echo "正在移动 Docker 数据目录..."
rsync -avzh "$old_dir" "$new_dir"
# 更新 Docker daemon 配置
echo "正在更新 Docker 配置..."
cat > /etc/docker/daemon.json <<EOF
{
"data-root": "$new_dir"
}
EOF
# 重启 Docker 服务
echo "正在重启 Docker 服务..."
systemctl daemon-reload
systemctl start docker
echo "Docker 数据目录已成功移动到 $new_dir"
标签:echo,目录,new,docker,移动,Docker,dir
From: https://www.cnblogs.com/Jarvansi/p/18353133