Skip to content

Docker 安装(Debian)

本章将详细介绍如何在 Debian 系统上安装和配置 Docker Engine。

系统要求

Docker Engine 支持以下 Debian 版本(64 位):

  • Debian 12 (Bookworm)
  • Debian 11 (Bullseye)

硬件要求:

  • 64 位处理器
  • 内核版本 3.10 或更高
  • 至少 2GB RAM(推荐 4GB 以上)

卸载旧版本

bash
sudo apt-get remove docker docker-engine docker.io containerd runc

使用 APT 仓库安装(推荐)

1. 更新包索引并安装依赖

bash
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg

2. 添加 Docker 官方 GPG 密钥

bash
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

3. 添加 Docker APT 仓库

bash
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

4. 安装 Docker Engine

bash
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

5. 验证安装

bash
sudo docker run hello-world

安装后配置

非 root 用户运行 Docker

bash
sudo usermod -aG docker $USER
newgrp docker

开机自启

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

配置 Daemon

bash
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<EOF
{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  },
  "storage-driver": "overlay2"
}
EOF

sudo systemctl restart docker

常见问题

iptables 兼容性

Debian 默认使用 nftables,Docker 需要 iptables

bash
# 切换到 iptables-legacy
sudo update-alternatives --set iptables /usr/sbin/iptables-legacy
sudo update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy

# 重启 Docker
sudo systemctl restart docker

内核版本过低

bash
# 检查内核版本
uname -r

# 如果低于 3.10,需要升级内核
sudo apt-get update && sudo apt-get upgrade

卸载 Docker

bash
sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd

延伸阅读