前置

bash
1. /etc/os-release && echo "$VERSION_CODENAME"
2# 本文按 trixie 写;bookworm 等把下面 URL 里的代号一并改掉

不要用发行版仓库里过时的 docker.io 凑合(可以跑,但版本和管理源往往不如官方 CE 清晰)。开发机推荐 Docker CE + 国内镜像。

依赖与 GPG 密钥

bash
1sudo apt update
2sudo apt install -y ca-certificates curl
3
4sudo install -m 0755 -d /etc/apt/keyrings
5sudo curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/debian/gpg \
6  -o /etc/apt/keyrings/docker.asc
7sudo chmod a+r /etc/apt/keyrings/docker.asc

若阿里云 GPG 地址异常,可用 Docker 官方密钥再继续用阿里云软件源(密钥与仓库可分开)。

添加阿里云 Docker CE 源

bash
1. /etc/os-release
2echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.asc] https://mirrors.aliyun.com/docker-ce/linux/debian ${VERSION_CODENAME} stable" \
3  | sudo tee /etc/apt/sources.list.d/docker.list

Debian 13 上生效后类似:

text
1deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.asc] https://mirrors.aliyun.com/docker-ce/linux/debian trixie stable

安装 Docker Engine

bash
1sudo apt update
2sudo apt install -y \
3  docker-ce \
4  docker-ce-cli \
5  containerd.io \
6  docker-buildx-plugin \
7  docker-compose-plugin

开机自启并立刻启动:

bash
1sudo systemctl enable --now docker
2sudo systemctl status docker --no-pager

当前用户免 sudo

bash
1sudo usermod -aG docker "$USER"

注销重新登录(或重启)后再测:

bash
1docker version
2docker run --rm hello-world

配置镜像加速(拉镜像用)

把加速器写进 daemon 配置(示例为阿里云;也可换中科大、DaoCloud 等):

bash
 1sudo mkdir -p /etc/docker
 2sudo tee /etc/docker/daemon.json >/dev/null <<'EOF'
 3{
 4  "registry-mirrors": [
 5    "https://docker.m.daocloud.io"
 6  ],
 7  "log-driver": "json-file",
 8  "log-opts": {
 9    "max-size": "50m",
10    "max-file": "3"
11  }
12}
13EOF
14
15sudo systemctl daemon-reload
16sudo systemctl restart docker
17docker info | grep -A5 'Registry Mirrors'

加速器地址会随服务商变更,以你账号控制台或镜像站文档为准。

常用自检

bash
1docker info
2docker compose version
3docker ps -a

数据盘与项目目录建议分开,例如:

bash
1mkdir -p ~/Workspace/datas

容器业务数据(MySQL、Redis、对象存储等)优先 bind 到 ~/Workspace/datas/...,不要只依赖匿名卷,方便备份和迁移。

和防火墙的关系(开发机)

UFW 默认拒入站时,Docker 映射到 0.0.0.0 的端口仍可能被局域网访问(走 FORWARD/DNAT,不经 UFW 的 INPUT)。开发本若只想本机用:

  • 映射写成 -p 127.0.0.1:3306:3306,或
  • 在 DOCKER-USER 链限制外网访问(见 XFCE 开发机整理一文中的防火墙小节)

小结

步骤 要点
源 mirrors.aliyun.com/docker-ce + 当前 Debian 代号
包 docker-ce 及 cli / containerd / buildx / compose 插件
权限 用户进 docker 组后重登
加速 /etc/docker/daemon.json 的 registry-mirrors

下一篇用 Docker 在本机落 Redis + MySQL(开机自启、数据在 Workspace/datas):Debian 安装 Redis 和 MySQL