docker

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > 云和虚拟化 > docker > Ubuntu通过官方仓库安装Docker Engine

如何在Ubuntu上通过官方仓库安装Docker Engine?

作者:Mrpaom

想知道如何在Ubuntu 26.04等64位系统上安装Docker吗?本文手把手教你通过官方APT仓库安装Docker Engine,并解决普通用户权限问题,配置开机启动和日志轮转,让你轻松跑起hello-world容器

此方法适用于以下 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. 确认系统版本

执行:

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.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

这条命令会完成三件事:

  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:

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 磁盘占用

八、总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文