title: ubuntu 一键安装docker+compose author: Gamehu date: 2025-05-23 14:51:21 tags: - devops categories: - 工作 ---
AI提效 Claude Sonnet 4
此系列都是基于AI辅助实现
## 国外的 ```shell # 能访问国外的一件搞定,比如我的Bandwagon curl -fsSL https://get.docker.com | sudo bash ``` ## 国内的 ```shell #!/bin/bash # Docker和Docker Compose完整安装脚本 for Ubuntu # 支持Ubuntu 20.04/22.04/24.04及更新版本 set -e # 遇到错误时退出 echo "================================" echo "Docker和Docker Compose安装脚本" echo "================================" # 检查是否为root用户 if [ "$EUID" -eq 0 ]; then echo "请不要使用root用户运行此脚本" echo "请使用普通用户运行:./install_docker.sh" exit 1 fi # 检查系统版本 if ! command -v lsb_release &> /dev/null; then sudo apt update sudo apt install -y lsb-release fi UBUNTU_VERSION=$(lsb_release -rs) echo "检测到Ubuntu版本: $UBUNTU_VERSION" # 备份原有的sources.list echo "1. 备份并配置APT镜像源..." sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup.$(date +%Y%m%d_%H%M%S) # 配置阿里云APT镜像源 sudo tee /etc/apt/sources.list > /dev/null < /dev/null # 更新包索引 echo "6. 更新包索引..." sudo apt update # 安装Docker echo "7. 安装Docker..." sudo apt install -y docker-ce docker-ce-cli containerd.io # 启动Docker服务并设置开机自启 echo "8. 启动Docker服务..." sudo systemctl start docker sudo systemctl enable docker # 将当前用户添加到docker组 echo "9. 配置用户权限..." sudo usermod -aG docker $USER # 配置Docker国内镜像加速器 echo "10. 配置Docker镜像加速器..." sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json > /dev/null <= 22.04" | bc -l) -eq 1 ]] 2>/dev/null || [[ "$UBUNTU_VERSION" == "22.04" ]] || [[ "$UBUNTU_VERSION" > "22.04" ]]; then # Ubuntu 22.04及以上版本,使用官方插件 echo " 使用官方插件安装Docker Compose..." sudo apt install -y docker-compose-plugin COMPOSE_CMD="docker compose" else # Ubuntu 20.04及以下版本,使用二进制文件安装 echo " 使用二进制文件安装Docker Compose..." COMPOSE_VERSION="v2.24.1" sudo curl -L "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 COMPOSE_CMD="docker-compose" fi # 等待Docker服务完全启动 echo "13. 等待Docker服务启动..." sleep 3 # 测试安装 echo "14. 测试安装..." echo "Docker版本:" docker --version echo "Docker Compose版本:" if [[ "$COMPOSE_CMD" == "docker compose" ]]; then docker compose version else docker-compose --version fi echo "Docker服务状态:" sudo systemctl is-active docker echo "" echo "================================" echo "安装完成!" echo "================================" echo "" echo "重要提示:" echo "1. 请重新登录系统或运行 'newgrp docker' 来使用户组权限生效" echo "2. 然后运行 'docker run hello-world' 来测试安装" echo "" if [[ "$COMPOSE_CMD" == "docker compose" ]]; then echo "Docker Compose命令: docker compose (注意是空格)" echo "如果习惯使用 docker-compose,可以创建别名:" echo "echo 'alias docker-compose=\"docker compose\"' >> ~/.bashrc && source ~/.bashrc" else echo "Docker Compose命令: docker-compose" fi echo "" echo "常用命令:" echo " docker --version # 查看Docker版本" echo " $COMPOSE_CMD version # 查看Docker Compose版本" echo " docker images # 查看镜像列表" echo " docker ps # 查看运行中的容器" echo " docker run hello-world # 测试Docker安装" echo "" echo "镜像加速器已配置,拉取镜像速度会更快!" echo "" echo "如需卸载Docker,请运行:" echo "sudo apt purge docker-ce docker-ce-cli containerd.io docker-compose-plugin" echo "sudo rm -rf /var/lib/docker /etc/docker" ```