此方法适用于以下 64 位 Ubuntu 版本:

Ubuntu 版本 支持类型
Ubuntu 26.04 LTS
Ubuntu 25.10 常规版本
Ubuntu 24.04 LTS
Ubuntu 22.04 LTS

本文以 Ubuntu 26.04 LTS 为例,通过 Docker 官方 APT 仓库安装 Docker Engine,并完成普通用户权限、开机启动和日志轮转。仓库配置会自动读取当前 Ubuntu 的系统代号,因此同样适用于上表中的其他受支持版本。


一、安装前检查

1. 确认系统版本

执行:

cat /etc/os-release

如下图:

1png

2. 查看 CPU 架构

dpkg --print-architecture
uname -m

2png

常见对应关系:

dpkg 输出 uname 常见输出 架构说明
amd64 x86_64 Intel、AMD 64 位处理器
arm64 aarch64 64 位 ARM 处理器

Docker 官方仓库会根据当前系统架构安装正确的软件包,不需要手动修改为 amd64

3. 更新软件包索引

sudo apt update
sudo apt upgrade -y

如果升级过程中安装了新内核,建议先重启,再继续安装 Docker:

sudo reboot

二、移除可能冲突的软件包

如果这是全新安装的 Ubuntu 26.04,通常没有冲突包。为了避免 docker.iocontainerdrunc 与 Docker 官方包发生冲突,可以执行清理命令:

sudo apt remove $(dpkg --get-selections docker.io docker-doc podman-docker containerd runc | cut -f1)

3png

系统提示没有安装这些软件包是正常现象。

如果服务器之前已经运行过 Docker,操作前先确认现有容器和数据是否需要备份。上面的命令不会自动删除 /var/lib/docker/ 中的镜像、容器和卷,但更换运行时前仍应先做好数据备份。


三、添加 Docker 官方 APT 仓库

1. 安装基础工具

sudo apt update
sudo apt install -y ca-certificates curl

4png

2. 添加 Docker 官方 GPG 密钥

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

5png

6png

执行后确认密钥文件已经创建:

ls -lh /etc/apt/keyrings/docker.asc
head -n 2 /etc/apt/keyrings/docker.asc

7png

3. 写入 Docker 软件源

sudo tee /etc/apt/sources.list.d/docker.sources >/dev/null <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF

这段命令会从系统信息中读取 Ubuntu 代号。Ubuntu 26.04 的 Suites 应为 resolute

检查写入结果:

cat /etc/apt/sources.list.d/docker.sources

8png

然后刷新软件包索引:

sudo apt update

可以用下面的命令确认 docker-ce 来自 Docker 官方仓库:

apt-cache policy docker-ce

9png

候选版本的来源地址中应该包含:

https://download.docker.com/linux/ubuntu resolute/stable

四、安装 Docker Engine

执行:

sudo apt install -y docker-ce docker-ce-cli containerd.io

安装结束后检查 Docker 服务:

sudo systemctl status docker --no-pager

10png

如果服务没有启动,手动启动:

sudo systemctl start docker

查看各组件版本:

sudo docker version

这里应当能看到 Docker Engine 的版本信息。

配置 Docker 镜像源并重启 Docker

Docker 默认从 Docker Hub 拉取镜像。如果当前网络访问 Docker Hub 超时,可以在首次运行容器前配置镜像源。

先确保 Docker 配置目录存在:

sudo install -m 0755 -d /etc/docker

使用 Vim 打开 Docker 配置文件:

sudo vim /etc/docker/daemon.json

i 进入编辑模式,将下面的内容写入文件:

{
  "registry-mirrors": [
    "https://9cpn8tt6.mirror.aliyuncs.com",
    "https://registry.docker-cn.com",
    "https://mirror.ccs.tencentyun.com",
    "https://docker.1panel.live",
    "https://2a6bf1988cb6428c877f723ec7530dbc.mirror.swr.myhuaweicloud.com",
    "https://docker.m.daocloud.io",
    "https://hub-mirror.c.163.com",
    "https://mirror.baidubce.com",
    "https://your_preferred_mirror",
    "https://dockerhub.icu",
    "https://docker.registry.cyou",
    "https://docker-cf.registry.cyou",
    "https://dockercf.jsdelivr.fyi",
    "https://docker.jsdelivr.fyi",
    "https://dockertest.jsdelivr.fyi",
    "https://mirror.aliyuncs.com",
    "https://dockerproxy.com",
    "https://mirror.baidubce.com",
    "https://docker.m.daocloud.io",
    "https://docker.nju.edu.cn",
    "https://docker.mirrors.sjtug.sjtu.edu.cn",
    "https://docker.mirrors.ustc.edu.cn",
    "https://mirror.iscas.ac.cn",
    "https://docker.rainbond.cc",
    "https://docker.1ms.run",
    "https://docker.1panel.live/"
  ]
}

Esc,输入 :wq 并按回车,保存并退出 Vim。

保存查看内容:

sudo cat /etc/docker/daemon.json

13png

重启 Docker,使镜像源配置生效:

sudo systemctl restart docker

确认 Docker 已恢复运行:

sudo systemctl status docker

五、运行 hello-world 验证安装

sudo docker run hello-world

这条命令会完成三件事:

  1. 从镜像仓库拉取 hello-world 镜像;
  2. 创建并运行一个临时容器;
  3. 输出成功信息后删除容器。

看到下面的关键文字,说明 Docker Engine 已经可以正常拉取和运行容器:

Hello from Docker!

14png


六、让当前用户无需 sudo 执行 Docker

默认情况下,普通用户执行 Docker 命令可能遇到 permission denied。先将当前用户加入 docker 用户组:

sudo usermod -aG docker $USER

然后注销并重新登录 SSH。也可以在当前终端临时刷新用户组:

newgrp docker

确认当前用户已经属于 docker 组:

id

再次测试,这次不加 sudo

docker ps -a

15png


七、常用 Docker 命令

命令 作用
docker ps 查看正在运行的容器
docker ps -a 查看全部容器
docker images 查看本地镜像
docker logs -f 容器名 持续查看容器日志
docker exec -it 容器名 sh 进入容器 Shell
docker restart 容器名 重启容器
docker stats 查看容器资源占用
docker system df 查看 Docker 磁盘占用

更多推荐