Linux脚本一键自动安装Docker
📋 概述
本文档提供了三个针对不同Linux发行版的Docker一键安装管理脚本,支持Docker和Docker Compose的完整生命周期管理。每个脚本都是独立完整的解决方案,无需额外依赖。
🎯 支持的系统
- CentOS/RHEL - 基于yum包管理器
- Ubuntu/Debian - 基于apt包管理器
- Kali Linux - 基于Debian,针对Kali 2025.1优化
✨ 主要功能
- 🚀 一键安装Docker CE和Docker Compose
- 🔧 服务管理(启动/停止/重启)
- 🗑️ 完整卸载功能
- 🎨 交互式菜单界面
- 🛡️ 错误处理和状态检查
🐧 CentOS Docker 管理脚本
📋 系统要求
- CentOS 7 或更高版本
- 具有sudo权限的用户账户
- 稳定的网络连接
🚀 快速使用
# 保存脚本
vim docker_manager_centos.sh
# 赋予执行权限
chmod +x docker_manager_centos.sh
# 运行脚本
./docker_manager_centos.sh
📄 完整脚本代码
#!/bin/bash
# docker_manager.sh
# 用于管理 Docker 和 Docker Compose 的交互脚本
# =======================
# 配置变量
# =======================
# Docker 仓库地址
DOCKER_REPO="https://download.docker.com/linux/centos/docker-ce.repo"
# =======================
# 函数定义
# =======================
# 安装 Docker 和 Docker Compose
install_docker() {
echo "正在安装 Docker..."
# 移除旧版本
sudo yum remove -y docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
# 安装必要的软件包
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# 添加 Docker 仓库
sudo yum-config-manager --add-repo $DOCKER_REPO
# 安装 Docker
sudo yum install -y docker-ce docker-ce-cli containerd.io
# 启动并设置开机自启
sudo systemctl start docker
sudo systemctl enable docker
echo "Docker 安装完成。"
# 安装 Docker Compose
echo "正在安装 Docker Compose..."
# 获取最新版本号
DOCKER_COMPOSE_LATEST=$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep tag_name | cut -d '"' -f 4)
if [ -z "$DOCKER_COMPOSE_LATEST" ]; then
echo "无法获取 Docker Compose 最新版本号。请手动检查 https://github.com/docker/compose/releases"
return
fi
# 下载 Docker Compose 二进制文件
sudo curl -L "https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_LATEST}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 授予可执行权限
sudo chmod +x /usr/local/bin/docker-compose
# 创建软链接(可选)
sudo ln -sf /usr/local/bin/docker-compose /usr/bin/docker-compose
# 验证安装
if command -v docker-compose &> /dev/null; then
echo "Docker Compose 安装完成,版本:$(docker-compose --version)"
else
echo "Docker Compose 安装失败。"
fi
}
# 启动 Docker 服务
start_docker() {
echo "正在启动 Docker 服务..."
sudo systemctl start docker
sudo systemctl enable docker
echo "Docker 服务已启动。"
}
# 重启 Docker 服务
restart_docker() {
echo "正在重启 Docker 服务..."
sudo systemctl restart docker
if [ $? -eq 0 ]; then
echo "Docker 服务已成功重启。"
else
echo "Docker 服务重启失败,请检查日志。"
fi
}
# 停止 Docker 服务
stop_docker() {
echo "正在停止 Docker 服务..."
sudo systemctl stop docker
if [ $? -eq 0 ]; then
echo "Docker 服务已停止。"
else
echo "Docker 服务停止失败,请检查日志。"
fi
}
# 卸载 Docker 和 Docker Compose
uninstall_docker() {
echo "正在卸载 Docker..."
# 停止 Docker 服务
sudo systemctl stop docker
# 卸载 Docker
sudo yum remove -y docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
# 删除所有镜像、容器、卷和网络
sudo rm -rf /var/lib/docker
echo "Docker 已卸载。"
# 卸载 Docker Compose
echo "正在卸载 Docker Compose..."
sudo rm -f /usr/local/bin/docker-compose
sudo rm -f /usr/bin/docker-compose
echo "Docker Compose 已卸载。"
}
# 显示菜单
show_menu() {
echo "=============================="
echo " Docker 管理脚本 "
echo "=============================="
echo "1. 安装 Docker(包括 Docker Compose)"
echo "2. 启动 Docker 服务"
echo "3. 重启 Docker 服务"
echo "4. 停止 Docker 服务"
echo "5. 卸载 Docker(包括 Docker Compose)"
echo "6. 退出"
echo "=============================="
}
# =======================
# 主程序
# =======================
while true; do
show_menu
read -p "请输入你的选择 [1-6]:" choice
case $choice in
1)
install_docker
;;
2)
start_docker
;;
3)
restart_docker
;;
4)
stop_docker
;;
5)
uninstall_docker
;;
6)
echo "退出脚本。"
exit 0
;;
*)
echo "无效的选择,请重新输入。"
;;
esac
echo ""
done
🐧 Debian 管理脚本
📄 完整脚本代码
#!/bin/bash
# docker_manager.sh
# 用于管理 Docker 和 Docker Compose 的交互脚本
# =======================
# 适配系统:Debian 12 (Bookworm)
# =======================
# =======================
# 配置变量
# =======================
# 【修改点 1】将 Ubuntu 仓库改为 Debian 官方仓库
DOCKER_REPO="https://download.docker.com/linux/debian"
# =======================
# 函数定义
# =======================
# 安装 Docker 和 Docker Compose
install_docker() {
echo "正在安装 Docker..."
# 检查是否安装了 sudo (Debian 12 默认可能没有 sudo)
if ! command -v sudo &> /dev/null; then
echo "错误: 未找到 sudo 命令。请先安装 sudo 或以 root 用户运行。"
return
fi
# 移除旧版本
sudo apt-get remove -y docker docker-engine docker.io containerd runc
# 更新包索引
sudo apt-get update
# 安装必要的软件包
sudo apt-get install -y apt-transport-https ca-certificates curl gnupg lsb-release
# 【修改点 2】修改 GPG 密钥下载地址,指向 Debian 路径
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg --yes
# 设置稳定的 Docker 仓库
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] $DOCKER_REPO $(lsb_release -cs) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 更新包索引
sudo apt-get update
# 安装 Docker Engine、Docker CLI 和 containerd
sudo apt-get install -y docker-ce docker-ce-cli containerd.io
# 启动并设置开机自启
sudo systemctl start docker
sudo systemctl enable docker
echo "Docker 安装完成。"
# 安装 Docker Compose
echo "正在安装 Docker Compose..."
# 获取最新版本号
DOCKER_COMPOSE_LATEST=$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep tag_name | cut -d '"' -f 4)
if [ -z "$DOCKER_COMPOSE_LATEST" ]; then
echo "无法获取 Docker Compose 最新版本号。请手动检查 https://github.com/docker/compose/releases"
return
fi
# 下载 Docker Compose 二进制文件
sudo curl -L "https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_LATEST}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 授予可执行权限
sudo chmod +x /usr/local/bin/docker-compose
# 创建软链接
sudo ln -sf /usr/local/bin/docker-compose /usr/bin/docker-compose
# 验证安装
if command -v docker-compose &> /dev/null; then
echo "Docker Compose 安装完成,版本:$(docker-compose --version)"
else
echo "Docker Compose 安装失败。"
fi
}
# 启动 Docker 服务
start_docker() {
echo "正在启动 Docker 服务..."
sudo systemctl start docker
sudo systemctl enable docker
echo "Docker 服务已启动。"
}
# 重启 Docker 服务
restart_docker() {
echo "正在重启 Docker 服务..."
sudo systemctl restart docker
if [ $? -eq 0 ]; then
echo "Docker 服务已成功重启。"
else
echo "Docker 服务重启失败,请检查日志。"
fi
}
# 停止 Docker 服务
stop_docker() {
echo "正在停止 Docker 服务..."
sudo systemctl stop docker
if [ $? -eq 0 ]; then
echo "Docker 服务已停止。"
else
echo "Docker 服务停止失败,请检查日志。"
fi
}
# 卸载 Docker 和 Docker Compose
uninstall_docker() {
echo "正在卸载 Docker..."
# 停止 Docker 服务
sudo systemctl stop docker
# 卸载 Docker
sudo apt-get purge -y docker-ce docker-ce-cli containerd.io
# 删除所有镜像、容器、卷和网络
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
echo "Docker 已卸载。"
# 卸载 Docker Compose
echo "正在卸载 Docker Compose..."
sudo rm -f /usr/local/bin/docker-compose
sudo rm -f /usr/bin/docker-compose
echo "Docker Compose 已卸载。"
}
# 显示菜单
show_menu() {
echo "=============================="
echo " Docker 管理脚本 (Debian 12)"
echo "=============================="
echo "1. 安装 Docker(包括 Docker Compose)"
echo "2. 启动 Docker 服务"
echo "3. 重启 Docker 服务"
echo "4. 停止 Docker 服务"
echo "5. 卸载 Docker(包括 Docker Compose)"
echo "6. 退出"
echo "=============================="
}
# =======================
# 主程序
# =======================
while true; do
show_menu
read -p "请输入你的选择 [1-6]:" choice
case $choice in
1)
install_docker
;;
2)
start_docker
;;
3)
restart_docker
;;
4)
stop_docker
;;
5)
uninstall_docker
;;
6)
echo "退出脚本。"
exit 0
;;
*)
echo "无效的选择,请重新输入。"
;;
esac
echo ""
done
🐧 Ubuntu Docker 管理脚本
📋 系统要求
- Ubuntu 18.04 LTS 或更高版本
- 具有sudo权限的用户账户
- 稳定的网络连接
🚀 快速使用
# 保存脚本
vim docker_manager_ubuntu.sh
# 赋予执行权限
chmod +x docker_manager_ubuntu.sh
# 运行脚本
./docker_manager_ubuntu.sh
📄 完整脚本代码
#!/bin/bash
# docker_manager.sh
# 用于管理 Docker 和 Docker Compose 的交互脚本(适用于 Ubuntu)
# =======================
# 配置变量
# =======================
# Docker 仓库地址
DOCKER_REPO="https://download.docker.com/linux/ubuntu"
# =======================
# 函数定义
# =======================
# 安装 Docker 和 Docker Compose
install_docker() {
echo "正在安装 Docker..."
# 移除旧版本
sudo apt-get remove -y docker docker-engine docker.io containerd runc
# 更新包索引
sudo apt-get update
# 安装必要的软件包
sudo apt-get install -y apt-transport-https ca-certificates curl gnupg lsb-release
# 添加 Docker 的官方 GPG 密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# 设置稳定的 Docker 仓库
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] $DOCKER_REPO $(lsb_release -cs) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 更新包索引
sudo apt-get update
# 安装 Docker Engine、Docker CLI 和 containerd
sudo apt-get install -y docker-ce docker-ce-cli containerd.io
# 启动并设置开机自启
sudo systemctl start docker
sudo systemctl enable docker
echo "Docker 安装完成。"
# 安装 Docker Compose
echo "正在安装 Docker Compose..."
# 获取最新版本号
DOCKER_COMPOSE_LATEST=$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep tag_name | cut -d '"' -f 4)
if [ -z "$DOCKER_COMPOSE_LATEST" ]; then
echo "无法获取 Docker Compose 最新版本号。请手动检查 https://github.com/docker/compose/releases"
return
fi
# 下载 Docker Compose 二进制文件
sudo curl -L "https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_LATEST}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 授予可执行权限
sudo chmod +x /usr/local/bin/docker-compose
# 创建软链接(可选)
sudo ln -sf /usr/local/bin/docker-compose /usr/bin/docker-compose
# 验证安装
if command -v docker-compose &> /dev/null; then
echo "Docker Compose 安装完成,版本:$(docker-compose --version)"
else
echo "Docker Compose 安装失败。"
fi
}
# 启动 Docker 服务
start_docker() {
echo "正在启动 Docker 服务..."
sudo systemctl start docker
sudo systemctl enable docker
echo "Docker 服务已启动。"
}
# 重启 Docker 服务
restart_docker() {
echo "正在重启 Docker 服务..."
sudo systemctl restart docker
if [ $? -eq 0 ]; then
echo "Docker 服务已成功重启。"
else
echo "Docker 服务重启失败,请检查日志。"
fi
}
# 停止 Docker 服务
stop_docker() {
echo "正在停止 Docker 服务..."
sudo systemctl stop docker
if [ $? -eq 0 ]; then
echo "Docker 服务已停止。"
else
echo "Docker 服务停止失败,请检查日志。"
fi
}
# 卸载 Docker 和 Docker Compose
uninstall_docker() {
echo "正在卸载 Docker..."
# 停止 Docker 服务
sudo systemctl stop docker
# 卸载 Docker
sudo apt-get purge -y docker-ce docker-ce-cli containerd.io
# 删除所有镜像、容器、卷和网络
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
echo "Docker 已卸载。"
# 卸载 Docker Compose
echo "正在卸载 Docker Compose..."
sudo rm -f /usr/local/bin/docker-compose
sudo rm -f /usr/bin/docker-compose
echo "Docker Compose 已卸载。"
}
# 显示菜单
show_menu() {
echo "=============================="
echo " Docker 管理脚本 "
echo "=============================="
echo "1. 安装 Docker(包括 Docker Compose)"
echo "2. 启动 Docker 服务"
echo "3. 重启 Docker 服务"
echo "4. 停止 Docker 服务"
echo "5. 卸载 Docker(包括 Docker Compose)"
echo "6. 退出"
echo "=============================="
}
# =======================
# 主程序
# =======================
while true; do
show_menu
read -p "请输入你的选择 [1-6]:" choice
case $choice in
1)
install_docker
;;
2)
start_docker
;;
3)
restart_docker
;;
4)
stop_docker
;;
5)
uninstall_docker
;;
6)
echo "退出脚本。"
exit 0
;;
*)
echo "无效的选择,请重新输入。"
;;
esac
echo ""
done
🐧 Kali Linux Docker 管理脚本
📋 系统要求
- Kali Linux 2025.1 或更高版本
- 具有sudo权限的用户账户
- 稳定的网络连接
🚀 快速使用
# 保存脚本
vim docker_manager_kali.sh
# 赋予执行权限
chmod +x docker_manager_kali.sh
# 运行脚本
./docker_manager_kali.sh
📄 完整脚本代码
#!/bin/bash
# docker_manager.sh
# 用于管理 Docker 和 Docker Compose 的交互脚本
# 已转换为Kali Linux 2025.1兼容版本
# =======================
# 配置变量
# =======================
# Docker 仓库配置
DOCKER_REPO_URL="https://download.docker.com/linux/debian"
DOCKER_REPO_DIST="bookworm"
# =======================
# 函数定义
# =======================
# 安装 Docker 和 Docker Compose
install_docker() {
echo "正在安装 Docker..."
# 移除旧版本
sudo apt remove -y docker docker.io containerd runc docker-engine
# 安装必要的软件包
sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl gnupg lsb-release
# 创建目录以存储GPG密钥
sudo mkdir -p /etc/apt/keyrings
# 添加 Docker 官方 GPG 密钥
curl -fsSL ${DOCKER_REPO_URL}/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# 添加 Docker 仓库
echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] ${DOCKER_REPO_URL} ${DOCKER_REPO_DIST} stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 更新软件包索引
sudo apt update
# 安装 Docker
sudo apt install -y docker-ce docker-ce-cli containerd.io
# 启动并设置开机自启
sudo systemctl start docker
sudo systemctl enable docker
# 添加当前用户到docker组
sudo usermod -aG docker $USER
echo "Docker 安装完成。请注意,要使用非root用户运行docker,您需要注销并重新登录。"
# 安装 Docker Compose
echo "正在安装 Docker Compose..."
# 方法1:使用apt安装docker-compose-plugin
sudo apt install -y docker-compose-plugin
if command -v docker compose &> /dev/null; then
echo "Docker Compose 插件安装完成,版本:$(docker compose version)"
else
echo "Docker Compose 插件安装失败,尝试使用二进制方法安装..."
# 方法2:获取最新版本号
DOCKER_COMPOSE_LATEST=$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep tag_name | cut -d '"' -f 4)
if [ -z "$DOCKER_COMPOSE_LATEST" ]; then
echo "无法获取 Docker Compose 最新版本号。请手动检查 https://github.com/docker/compose/releases"
return
fi
# 下载 Docker Compose 二进制文件
sudo curl -L "https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_LATEST}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 授予可执行权限
sudo chmod +x /usr/local/bin/docker-compose
# 创建软链接(可选)
sudo ln -sf /usr/local/bin/docker-compose /usr/bin/docker-compose
# 验证安装
if command -v docker-compose &> /dev/null; then
echo "Docker Compose 安装完成,版本:$(docker-compose --version)"
else
echo "Docker Compose 安装失败。"
fi
fi
}
# 启动 Docker 服务
start_docker() {
echo "正在启动 Docker 服务..."
sudo systemctl start docker
sudo systemctl enable docker
echo "Docker 服务已启动。"
}
# 重启 Docker 服务
restart_docker() {
echo "正在重启 Docker 服务..."
sudo systemctl restart docker
if [ $? -eq 0 ]; then
echo "Docker 服务已成功重启。"
else
echo "Docker 服务重启失败,请检查日志。"
fi
}
# 停止 Docker 服务
stop_docker() {
echo "正在停止 Docker 服务..."
sudo systemctl stop docker
if [ $? -eq 0 ]; then
echo "Docker 服务已停止。"
else
echo "Docker 服务停止失败,请检查日志。"
fi
}
# 卸载 Docker 和 Docker Compose
uninstall_docker() {
echo "正在卸载 Docker..."
# 停止 Docker 服务
sudo systemctl stop docker
# 卸载 Docker
sudo apt purge -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
sudo apt autoremove -y
# 删除所有镜像、容器、卷和网络
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
echo "Docker 已卸载。"
# 卸载 Docker Compose
echo "正在卸载 Docker Compose..."
sudo rm -f /usr/local/bin/docker-compose
sudo rm -f /usr/bin/docker-compose
echo "Docker Compose 已卸载。"
}
# 显示菜单
show_menu() {
echo "=============================="
echo " Docker 管理脚本 "
echo "=============================="
echo "1. 安装 Docker(包括 Docker Compose)"
echo "2. 启动 Docker 服务"
echo "3. 重启 Docker 服务"
echo "4. 停止 Docker 服务"
echo "5. 卸载 Docker(包括 Docker Compose)"
echo "6. 退出"
echo "=============================="
}
# =======================
# 主程序
# =======================
while true; do
show_menu
read -p "请输入你的选择 [1-6]:" choice
case $choice in
1)
install_docker
;;
2)
start_docker
;;
3)
restart_docker
;;
4)
stop_docker
;;
5)
uninstall_docker
;;
6)
echo "退出脚本。"
exit 0
;;
*)
echo "无效的选择,请重新输入。"
;;
esac
echo ""
done
🔧 使用说明
📝 通用操作步骤
-
选择适合的脚本
-
下载并准备脚本
# 创建脚本文件 vim docker_manager.sh # 复制对应的脚本内容 # 保存并退出 # 赋予执行权限 chmod +x docker_manager.sh -
运行脚本
./docker_manager.sh -
选择操作
- 输入数字 1-6 选择对应功能
- 按照提示完成操作
🎯 菜单功能说明
| 选项 | 功能 | 说明 |
|---|---|---|
| 1 | 安装 Docker | 完整安装Docker CE和Docker Compose |
| 2 | 启动服务 | 启动Docker服务并设置开机自启 |
| 3 | 重启服务 | 重启Docker服务 |
| 4 | 停止服务 | 停止Docker服务 |
| 5 | 卸载 Docker | 完全卸载Docker和相关组件 |
| 6 | 退出脚本 | 退出管理程序 |
⚠️ 注意事项
🛡️ 安全提醒
- 权限要求: 所有操作都需要sudo权限
- 网络访问: 安装过程需要访问Docker官方仓库
- 系统影响: 卸载功能会删除所有Docker数据
🔍 常见问题
Q: 安装失败怎么办?
- 检查网络连接是否正常
- 确认系统版本是否支持
- 查看错误日志进行排查
Q: Docker Compose安装失败?
- 脚本会自动尝试多种安装方法
- 手动安装:
sudo apt install docker-compose-plugin
Q: 非root用户无法使用docker?
- 执行:
sudo usermod -aG docker $USER - 注销并重新登录系统
📊 版本兼容性
| 系统 | 最低版本 | 推荐版本 |
|---|---|---|
| CentOS | 7.0 | 8.0+ |
| Ubuntu | 18.04 LTS | 20.04 LTS+ |
| Kali Linux | 2020.1 | 2025.1+ |
📞 技术支持
如遇到问题,请:
- 检查系统日志:
sudo journalctl -u docker - 查看Docker状态:
sudo systemctl status docker - 参考官方文档:Docker Documentation
文档版本:v1.0 | 最后更新:2025年6月