Ubuntu 部署 Docker 完整教程

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

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

本文以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常见输出架构说明
amd64x86_64Intel、AMD 64 位处理器
arm64aarch6464 位 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-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 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 软件源

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

这条命令会完成三件事:

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

看到下面的关键文字,说明 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 磁盘占用