一键安装docker脚本(复制整段执行)
bash
#!/bin/bash
set -e # 遇到错误立即停止,避免带着问题继续执行
# ---------- 1. 环境检查 ----------
if ! grep -qi "ubuntu" /etc/os-release; then
echo "⚠️ 警告:当前系统非标准 Ubuntu,源配置可能失败。"
read -p "是否继续?(y/N): " confirm
[[ "$confirm" != "y" ]] && exit 0
fi
# ---------- 2. 彻底清理旧环境 ----------
echo ">>> 正在清理旧版 Docker..."
sudo apt remove -y docker.io containerd runc 2>/dev/null || true
sudo apt purge -y docker* containerd* 2>/dev/null || true
sudo apt autoremove -y
sudo rm -rf /var/lib/docker /var/lib/containerd /etc/docker /etc/apt/sources.list.d/docker.list
# ---------- 3. 安装 Docker CE ----------
echo ">>> 安装依赖与密钥..."
sudo apt update
sudo apt install -y ca-certificates curl gnupg lsb-release
sudo install -m 0755 -d /etc/apt/keyrings
# 下载密钥(带重试机制,防止网络抖动)
curl -fsSL --retry 3 https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# 智能获取代号:非 Ubuntu 系统回退到 focal(Ubuntu 20.04 LTS)
UBUNTU_CODENAME=$(lsb_release -cs 2>/dev/null || echo "focal")
if ! curl -s --head "https://download.docker.com/linux/ubuntu/dists/$UBUNTU_CODENAME/" | head -n 1 | grep -q "200"; then
echo "⚠️ 代号 $UBUNTU_CODENAME 无效,使用 focal 替代"
UBUNTU_CODENAME="focal"
fi
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $UBUNTU_CODENAME stable" | sudo tee /etc/apt/sources.list.d/docker.list >/dev/null
# 安装 Docker
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
# ---------- 4. 优化配置 ----------
echo ">>> 配置镜像加速与日志限制..."
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json >/dev/null <<'EOF'
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://dockerproxy.com"
],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file": "3"
},
"storage-driver": "overlay2"
}
EOF
# 重启生效
sudo systemctl daemon-reload
sudo systemctl restart docker
# ---------- 5. 验证与建议 ----------
echo ">>> 安装完成,版本信息:"
docker --version
docker compose version 2>/dev/null || echo "Compose Plugin 已安装"
echo "✅ Docker 安装成功!"
echo "建议:执行 'sudo usermod -aG docker $USER' 将当前用户加入 docker 组,避免每次使用 sudo。"
一键安装Docker Compose脚本(复制整段执行)
bash
#!/bin/bash
set -e
# 1. 下载最新版 Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 2. 添加执行权限
sudo chmod +x /usr/local/bin/docker-compose
# 3. 创建软链接(让系统能识别 docker-compose 命令)
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
# 4. 验证安装
echo -e "\n===== Docker Compose 安装成功 ====="
docker-compose --version
以上两个直接一 起一步到位
#!/bin/bash
set -e
# ---------- 1. 清理旧环境 ----------
echo ">>> 清理旧版本..."
sudo apt remove -y docker.io containerd runc 2>/dev/null || true
sudo apt purge -y docker* containerd* 2>/dev/null || true
sudo apt autoremove -y
sudo rm -rf /var/lib/docker /var/lib/containerd /etc/docker /etc/apt/sources.list.d/docker.list
sudo rm -f /usr/bin/docker-compose /usr/local/bin/docker-compose
# ---------- 2. 安装 Docker CE ----------
echo ">>> 安装 Docker CE..."
sudo apt update
sudo apt install -y ca-certificates curl gnupg lsb-release
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL --retry 3 https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
UBUNTU_CODENAME=$(lsb_release -cs 2>/dev/null || echo "focal")
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $UBUNTU_CODENAME stable" | sudo tee /etc/apt/sources.list.d/docker.list >/dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
# ---------- 3. 配置镜像加速 ----------
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json >/dev/null <<'EOF'
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://dockerproxy.com"
],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file": "3"
}
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
sudo systemctl enable docker
# ---------- 4. 安装独立版 docker-compose(可选)----------
echo ">>> 安装 docker-compose 独立版..."
COMPOSE_VERSION=$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/')
sudo curl -L --retry 3 "https://github.com/docker/compose/releases/download/${COMPOSE_VERSION}/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
# ---------- 5. 验证 ----------
echo -e "\n===== 安装完成 ====="
docker --version
docker compose version
docker-compose --version
echo -e "\n✅ 全部安装成功!"
echo "提示:执行 'sudo usermod -aG docker $USER' 并重新登录,即可免 sudo 使用 docker。"