在 Debian 上安装 Docker Engine 和 Docker Compose

本教程指导你在 Debian 12(Bookworm)上安装 Docker Engine 和 Docker Compose,遵循官方文档的推荐方法(https://docs.docker.com/engine/install/debian/)。

前提条件

防火墙限制

  • 如果使用 ufwfirewalld,请注意 Docker 暴露的容器端口会绕过防火墙规则。详情请参阅 Docker 和 ufw
  • Docker 仅兼容 iptables-nftiptables-legacy。使用 nft 创建的防火墙规则不受支持。确保防火墙规则使用 iptablesip6tables,并添加到 DOCKER-USER 链。参见 包过滤和防火墙

系统要求

  • 需要 64 位版本的 Debian 12(Bookworm)。
  • 支持的架构:x86_64(或 amd64)、armhfarm64ppc64le

卸载旧版本

在安装 Docker Engine 之前,卸载可能冲突的包:

for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt remove -y $pkg; done
  • 注意:/var/lib/docker/ 中的镜像、容器、卷和网络不会自动删除。如需全新安装,可参考卸载 Docker Engine 部分清理数据。

安装方法

方法 1:使用 APT 仓库安装

  1. 设置 Docker 的 APT 仓库

    # 更新包索引并安装依赖
    sudo apt update
    sudo apt install -y ca-certificates curl
    sudo install -m 0755 -d /etc/apt/keyrings
    
    # 建议多输几次下面这行,可能被墙不稳定
    sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
    sudo chmod a+r /etc/apt/keyrings/docker.asc
    
    # 添加 Docker 仓库
    echo \
      "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
      bookworm stable" | \
      sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    
    sudo apt update
    
  2. 安装 Docker 包 安装最新版本:

    sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
    

    如果需要安装特定版本:

    # 列出可用版本
    apt-cache madison docker-ce | awk '{ print $3 }'
    
    # 安装指定版本(例如 5:28.3.2-1~debian.12~bookworm)
    VERSION_STRING=5:28.3.2-1~debian.12~bookworm
    sudo apt install -y docker-ce=$VERSION_STRING docker-ce-cli=$VERSION_STRING containerd.io docker-buildx-plugin docker-compose-plugin
    
  3. 验证安装

    sudo systemctl start docker
    sudo systemctl enable docker
    
    # 这步可能被墙无法拉取镜像
    sudo docker run hello-world
    

    如果看到 hello-world 容器的确认信息,说明安装成功。

方法 2:使用便捷脚本安装

Docker 提供了一个便捷脚本(https://get.docker.com/)用于非交互式安装,适合开发环境,但不推荐用于生产环境。注意以下限制:

  • 需要 rootsudo 权限。
  • 脚本会自动检测发行版并配置包管理器。
  • 不支持自定义安装参数。
  • 默认安装最新稳定版本,可能导致意外的版本升级。
  • 不适合升级现有 Docker 安装。

运行以下命令安装:

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
  • 预览脚本步骤(可选):

    sudo sh get-docker.sh --dry-run
    
  • 验证安装:

    sudo systemctl start docker
    sudo docker run hello-world
    

安装预发布版本

若需安装测试版或预发布版,使用以下脚本:

curl -fsSL https://test.docker.com -o test-docker.sh
sudo sh test-docker.sh

(可选)设置非 root 用户运行 Docker

默认情况下,需使用 sudo 运行 Docker 命令。为允许非 root 用户运行:

sudo groupadd docker
sudo usermod -aG docker $USER
newgrp docker

注销并重新登录或运行 newgrp docker 使更改生效。验证:

docker run hello-world

安装 Docker Compose

Docker Compose 作为插件已包含在 docker-compose-plugin 中,无需单独安装。验证版本:

docker compose version

配置 Docker 开机自启

确保 Docker 和 containerd 在系统启动时自动运行:

sudo systemctl enable docker.service
sudo systemctl enable containerd.service

升级 Docker Engine

  • 使用 APT 仓库升级

    :重复“方法 1:安装 Docker 包”步骤,选择新版本:

    sudo apt update
    sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
    
  • 使用便捷脚本升级:不建议重新运行脚本,建议使用 APT 仓库升级以避免重复配置仓库导致的问题。

卸载 Docker Engine

  1. 卸载 Docker 包:

    sudo apt purge -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
    
  2. 删除所有镜像、容器和卷(可选):

    sudo rm -rf /var/lib/docker
    sudo rm -rf /var/lib/containerd
    
  3. 删除源列表和密钥:

    sudo rm /etc/apt/sources.list.d/docker.list
    sudo rm /etc/apt/keyrings/docker.asc
    

注意事项

  • 生产环境中优先使用 APT 仓库安装,便捷脚本适合开发或测试环境。
  • 如果使用衍生发行版(如 Kali Linux),需将 bookworm 替换为对应的 Debian 版本代号。
  • 更多配置详情,参考 Docker 官方文档Linux 安装后步骤
梦葉樱 all right reserved,powered by Gitbook该文件最后修改时间: 2025-08-01 21:37:02

results matching ""

    No results matching ""