- 下载Docker离线包,下载文件:
containerd.io_1.4.12-1_amd64.deb
docker-ce-cli_20.10.123-0ubuntu-focal_amd64.deb
docker-ce_20.10.123-0ubuntu-focal_amd64.deb - 离线包和脚本放在同一目录下
- 脚本授权:chmod 755 install_docker.sh
- 执行脚本,等待输出提示
# 当前目录,即 .deb 文件与脚本所在目录
DEB_DIR="$(dirname "$0")"
# 进入 .deb 文件目录
cd "$DEB_DIR" || { echo "[ERROR] 目录不存在: $DEB_DIR"; exit 1; }
# 修改服务器时间
sudo timedatectl set-timezone Asia/Shanghai
# 定义要安装的 .deb 文件列表
DEB_FILES=(
"containerd.io_1.4.12-1_amd64.deb"
"docker-ce-cli_20.10.12_3-0_ubuntu-focal_amd64.deb"
"docker-ce_20.10.12_3-0_ubuntu-focal_amd64.deb"
)
# 遍历并安装所有 .deb 文件
for deb_file in "${DEB_FILES[@]}"; do
if [[ -f "$deb_file" ]]; then
echo "[INFO] 安装 $deb_file ..."
sudo dpkg -i "$deb_file"
else
echo "[ERROR] 找不到文件: $deb_file"
exit 1
fi
done
# 检查并修复任何未满足的依赖关系
echo "[INFO] 检查并修复依赖问题..."
if sudo dpkg --configure -a && sudo apt-get install -f -y; then
echo "[INFO] 依赖问题修复完成"
else
echo "[ERROR] 依赖修复失败,请检查手动解决"
exit 1
fi
# 启动并设置 Docker 开机自启动
echo "[INFO] 启动 Docker 服务并设置开机自启动..."
sudo systemctl enable docker
sudo systemctl start docker
# 验证 Docker 安装和服务启动
echo "[INFO] 验证 Docker 安装..."
if docker --version; then
echo "[INFO] Docker 安装成功,验证服务状态..."
# 验证 Docker 服务是否运行
if systemctl is-active --quiet docker; then
echo "[INFO] Docker 服务正在运行"
else
echo "[ERROR] Docker 服务未能成功启动"
exit 1
fi
else
echo "[ERROR] Docker 安装失败,请检查安装文件或依赖"
exit 1
fi