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. 确认系统版本
- 2. 查看 CPU 架构
- 3. 更新软件包索引
- 二、移除可能冲突的软件包
- 三、添加 Docker 官方 APT 仓库
- 1. 安装基础工具
- 2. 添加 Docker 官方 GPG 密钥
- 3. 写入 Docker 软件源
- 四、安装 Docker Engine
- 配置 Docker 镜像源并重启 Docker
- 五、运行 hello-world 验证安装
- 六、让当前用户无需 sudo 执行 Docker
- 七、常用 Docker 命令
一、安装前检查
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-selectionsdocker.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 curl2. 添加 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.asc3. 写入 Docker 软件源
sudotee/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-clicontainerd.io安装结束后检查 Docker 服务:
sudo systemctl status docker--no-pager如果服务没有启动,手动启动:
sudo systemctlstartdocker查看各组件版本:
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。
保存查看内容:
sudocat/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:
dockerps-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 磁盘占用 |