" />
文章

Linux 上安装 Docker 和 Docker Compose 完整指南

Linux 上安装 Docker 和 Docker Compose 完整指南

📋 目录

🖥️ 系统要求

最低要求

  • CPU: 64位处理器
  • 内存: 至少 2GB RAM
  • 存储: 至少 20GB 可用空间
  • 内核: Linux kernel 3.10+

支持的系统版本

  • Ubuntu: 18.04, 20.04, 22.04, 24.04
  • Debian: 9, 10, 11, 12
  • CentOS: 7, 8
  • RHEL: 7, 8, 9
  • Rocky Linux: 8, 9
  • Fedora: 36, 37, 38

🐧 Ubuntu/Debian 安装

方法一:使用官方脚本(推荐)

# 下载并运行官方安装脚本
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

# 启动 Docker 服务
sudo systemctl start docker
sudo systemctl enable docker

# 将当前用户添加到 docker 组
sudo usermod -aG docker $USER

# 重新登录或执行以下命令使组权限生效
newgrp docker

方法二:手动安装

# 1. 更新包索引
sudo apt update

# 2. 安装必要的包
sudo apt install -y \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

# 3. 添加 Docker 官方 GPG 密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# 4. 添加 Docker 仓库
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 5. 更新包索引
sudo apt update

# 6. 安装 Docker Engine
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# 7. 启动并启用 Docker 服务
sudo systemctl start docker
sudo systemctl enable docker

# 8. 将用户添加到 docker 组
sudo usermod -aG docker $USER

🔴 CentOS/RHEL/Rocky Linux 安装

方法一:使用官方脚本(推荐)

# 下载并运行官方安装脚本
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

# 启动 Docker 服务
sudo systemctl start docker
sudo systemctl enable docker

# 将当前用户添加到 docker 组
sudo usermod -aG docker $USER

# 重新登录或执行以下命令使组权限生效
newgrp docker

方法二:手动安装(CentOS 7)

# 1. 卸载旧版本
sudo yum remove -y docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

# 2. 安装必要的包
sudo yum install -y yum-utils

# 3. 添加 Docker 仓库
sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

# 4. 安装 Docker Engine
sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin

# 5. 启动并启用 Docker 服务
sudo systemctl start docker
sudo systemctl enable docker

# 6. 将用户添加到 docker 组
sudo usermod -aG docker $USER

方法三:手动安装(CentOS 8/Rocky Linux 8+)

# 1. 卸载旧版本
sudo dnf remove -y docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine

# 2. 安装必要的包
sudo dnf install -y dnf-utils

# 3. 添加 Docker 仓库
sudo dnf config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

# 4. 安装 Docker Engine
sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin

# 5. 启动并启用 Docker 服务
sudo systemctl start docker
sudo systemctl enable docker

# 6. 将用户添加到 docker 组
sudo usermod -aG docker $USER

🐳 Docker Compose 安装

方法一:使用 Docker 插件(推荐,Docker 20.10.13+)

# 现代版本的 Docker 已经包含 Docker Compose 插件
# 使用 docker compose 命令(注意没有连字符)
docker compose version

方法二:独立安装 Docker Compose

# 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. 创建软链接(可选)
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

# 4. 验证安装
docker-compose --version

方法三:使用 pip 安装

# 1. 安装 Python 和 pip
sudo apt install -y python3 python3-pip  # Ubuntu/Debian
# 或
sudo yum install -y python3 python3-pip  # CentOS 7
# 或
sudo dnf install -y python3 python3-pip  # CentOS 8+/Rocky Linux

# 2. 使用 pip 安装 Docker Compose
sudo pip3 install docker-compose

# 3. 验证安装
docker-compose --version

🇨🇳 国内网络环境配置

配置 Docker 镜像加速器

# 1. 创建或编辑 Docker daemon 配置文件
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": [
    "https://docker.mirrors.ustc.edu.cn",
    "https://hub-mirror.c.163.com",
    "https://mirror.baidubce.com",
    "https://ccr.ccs.tencentyun.com"
  ],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  }
}
EOF

# 2. 重启 Docker 服务
sudo systemctl daemon-reload
sudo systemctl restart docker

# 3. 验证配置
docker info | grep -A 10 "Registry Mirrors"

国内镜像下载 Docker Compose

# 使用阿里云镜像下载 Docker Compose
sudo curl -L "https://get.daocloud.io/docker/compose/releases/download/v2.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

# 或使用腾讯云镜像
sudo curl -L "https://mirrors.cloud.tencent.com/docker-compose/releases/download/v2.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

# 添加执行权限
sudo chmod +x /usr/local/bin/docker-compose

✅ 验证安装

验证 Docker 安装

# 1. 检查 Docker 版本
docker --version

# 2. 检查 Docker 服务状态
sudo systemctl status docker

# 3. 运行测试容器
docker run hello-world

# 4. 查看 Docker 信息
docker info

验证 Docker Compose 安装

# 1. 检查 Docker Compose 版本
docker-compose --version
# 或(新版本)
docker compose version

# 2. 测试 Docker Compose
mkdir test-compose && cd test-compose
cat > docker-compose.yml <<EOF
version: '3.8'
services:
  hello:
    image: hello-world
EOF

# 运行测试
docker-compose up
# 或
docker compose up

⚙️ 常用配置

配置 Docker 开机自启

sudo systemctl enable docker

配置用户权限

# 将用户添加到 docker 组
sudo usermod -aG docker $USER

# 重新登录或执行
newgrp docker

# 验证权限
docker run hello-world

配置 Docker 存储位置

# 停止 Docker 服务
sudo systemctl stop docker

# 创建新的存储目录
sudo mkdir -p /new/docker/path

# 移动现有数据
sudo mv /var/lib/docker/* /new/docker/path/

# 编辑 daemon.json
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "data-root": "/new/docker/path",
  "registry-mirrors": [
    "https://docker.mirrors.ustc.edu.cn"
  ]
}
EOF

# 重启 Docker
sudo systemctl start docker

配置 Docker 日志

# 在 daemon.json 中配置日志
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  }
}
EOF

sudo systemctl restart docker
License:  CC BY 4.0