riglen
发布于 2026-03-11 / 9 阅读
0

Ubuntu / Debian 手动安装 Docker

本文记录在 Ubuntu / Debian 系统中手动安装 Docker 的完整流程,适合拿来存档或后续部署时直接参考。

适用系统:

  • Debian 11 / 12 / 13
  • Ubuntu 22.04 / 24.04

注意:Ubuntu 和 Debian 的 Docker 官方仓库地址不同,不能混用。


一、卸载旧版本(避免冲突)

如果系统中已经安装过旧版 Docker,建议先卸载。

Debian

apt remove docker.io docker-compose podman-docker containerd runc -y

Ubuntu

apt remove docker.io docker-compose docker-compose-v2 podman-docker containerd runc -y

二、更新系统软件包

apt update
apt upgrade -y

三、安装必要依赖

apt install -y ca-certificates curl

四、添加 Docker 官方 GPG key

这一步 Debian 和 Ubuntu 通用。

install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/$(. /etc/os-release && echo "$ID")/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc

五、添加 Docker 官方仓库

这里开始需要区分系统。

1)Debian 添加仓库

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

2)Ubuntu 添加仓库

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

然后更新软件包索引:

apt update

六、安装 Docker Engine 与 Compose 插件

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

七、验证是否安装成功

查看 Docker 版本:

docker --version

查看 Docker Compose 插件版本:

docker compose version

运行测试容器:

docker run hello-world

如果输出中包含:

Hello from Docker!

说明 Docker 已安装成功。


八、设置 Docker 开机自启

systemctl enable docker

查看服务状态:

systemctl status docker

九、配置当前用户免 sudo(可选)

如果你不是使用 root 用户操作,可以把当前用户加入 docker 用户组。

usermod -aG docker 你的用户名

执行后重新登录终端,或者执行:

newgrp docker

这样后续执行 docker 命令时就不需要再加 sudo 了。


十、建议优化:配置镜像加速

如果拉取镜像速度较慢,可以配置镜像加速。

先创建 Docker 配置目录:

mkdir -p /etc/docker

编辑配置文件:

vim /etc/docker/daemon.json

写入如下内容:

{
  "registry-mirrors": [
    "https://dockerproxy.com",
    "https://mirror.ccs.tencentyun.com"
  ]
}

保存后重启 Docker:

systemctl restart docker

十一、查看 Docker 服务日志

如果 Docker 启动失败,或者排查运行问题,可以查看服务日志:

journalctl -u docker -n 100 --no-pager

十二、常见问题

1. Ubuntu 不要误配成 Debian 源

这是一个非常常见的错误。

错误示例:

https://download.docker.com/linux/debian noble

这里的 nobleUbuntu 24.04 的版本代号,不属于 Debian。
如果你是 Ubuntu,正确地址应该是:

https://download.docker.com/linux/ubuntu noble

2. 安装时出现 connection reset 或 TLS 握手失败

例如:

curl: (35) Recv failure: Connection reset by peer
Could not handshake: Error in the pull function

这类问题常见原因有:

  • IPv6 网络不稳定
  • 双网卡路由异常
  • 机房或运营商到 Docker CDN 的链路质量较差

可以先尝试强制使用 IPv4:

curl -4fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
apt -o Acquire::ForceIPv4=true update

如果这样就恢复正常,通常说明问题不在 Docker 命令本身,而在 IPv6 或网络链路。


总结

Docker 在 Ubuntu / Debian 上安装并不复杂,关键就是两点:

  1. 系统类型要分清楚,Ubuntu 和 Debian 源不能混用
  2. 如果拉取失败,优先排查网络,尤其是 IPv6 和双网卡路由问题

这样配置好之后,后续无论是安装单个容器,还是部署 docker compose 项目,都会方便很多。