Ubuntu 部署 Docker 完整教程
此方法适用于以下 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
如下图:

2. 查看 CPU 架构
dpkg --print-architecture
uname -m

常见对应关系:
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.io、containerd 或 runc 与 Docker 官方包发生冲突,可以执行清理命令:
sudo apt remove $(dpkg --get-selections docker.io docker-doc podman-docker containerd runc | cut -f1)

系统提示没有安装这些软件包是正常现象。
如果服务器之前已经运行过 Docker,操作前先确认现有容器和数据是否需要备份。上面的命令不会自动删除 /var/lib/docker/ 中的镜像、容器和卷,但更换运行时前仍应先做好数据备份。
三、添加 Docker 官方 APT 仓库
1. 安装基础工具
sudo apt update
sudo apt install -y ca-certificates curl

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


执行后确认密钥文件已经创建:
ls -lh /etc/apt/keyrings/docker.asc
head -n 2 /etc/apt/keyrings/docker.asc

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

然后刷新软件包索引:
sudo apt update
可以用下面的命令确认 docker-ce 来自 Docker 官方仓库:
apt-cache policy docker-ce

候选版本的来源地址中应该包含:
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

如果服务没有启动,手动启动:
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

重启 Docker,使镜像源配置生效:
sudo systemctl restart docker
确认 Docker 已恢复运行:
sudo systemctl status docker
五、运行 hello-world 验证安装
sudo docker run hello-world
这条命令会完成三件事:
- 从镜像仓库拉取
hello-world镜像; - 创建并运行一个临时容器;
- 输出成功信息后删除容器。
看到下面的关键文字,说明 Docker Engine 已经可以正常拉取和运行容器:
Hello from Docker!

六、让当前用户无需 sudo 执行 Docker
默认情况下,普通用户执行 Docker 命令可能遇到 permission denied。先将当前用户加入 docker 用户组:
sudo usermod -aG docker $USER
然后注销并重新登录 SSH。也可以在当前终端临时刷新用户组:
newgrp docker
确认当前用户已经属于 docker 组:
id
再次测试,这次不加 sudo:
docker ps -a

七、常用 Docker 命令
| 命令 | 作用 |
|---|---|
docker ps |
查看正在运行的容器 |
docker ps -a |
查看全部容器 |
docker images |
查看本地镜像 |
docker logs -f 容器名 |
持续查看容器日志 |
docker exec -it 容器名 sh |
进入容器 Shell |
docker restart 容器名 |
重启容器 |
docker stats |
查看容器资源占用 |
docker system df |
查看 Docker 磁盘占用 |
更多推荐
所有评论(0)