Ubuntu 安装 Docker 操作手册
操作系统要求
要安装 Docker 引擎,您需要以下 Ubuntu 版本的 64 位版本之一:
- Ubuntu Questing 25.10 Ubuntu 探索版 25.10
- Ubuntu Plucky 25.04 Ubuntu 勇敢版 25.04
- Ubuntu Noble 24.04 (LTS) Ubuntu 贵族版 24.04 (LTS)
- Ubuntu Jammy 22.04 (LTS) Ubuntu 甜蜜版 22.04 (LTS)
Ubuntu 的 Docker Engine 与 x86_64(或 amd64)、armhf、arm64、s390x 和 ppc64le(ppc64el)架构兼容。
查看系统版本
1 | sharkidon@ubuntu:~$ cat /etc/os-release |
卸载旧版本
在安装 Docker Engine 之前,需要卸载任何冲突的软件包。
要卸载的非官方软件包有:
docker.iodocker-composedocker-compose-v2docker-docpodman-docker
此外,Docker Engine 依赖于 containerd 和 runc 。Docker Engine 将这些依赖捆绑为一个包: containerd.io 。如果你之前安装了 containerd 或 runc ,卸载它们以避免与 Docker Engine 捆绑的版本冲突。
运行以下命令以卸载所有冲突的包:
1 | sudo apt remove $(dpkg --get-selections docker.io docker-compose docker-compose-v2 docker-doc podman-docker containerd runc | cut -f1) |
使用apt仓库安装
安装需要的工具
1 | # 更新软件包索引 |
设置apt仓库
设置官方仓库
1 | # Add Docker's official GPG key: |
设置国内仓库
由于众所周知的原因,官方仓库的访问速度很感人,在没有进行科学上网的情况下,设置国内的仓库进行安装就很有必要
设置清华大学仓库
1 | # 添加清华大学源的GPG密钥 |
设置阿里云仓库
1 | # 添加阿里云官方GPG密钥 |
安装
最新版
1 | sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin |
指定版本
要安装特定版本的 Docker Engine,首先列出仓库中可用的版本:
1 | apt list --all-versions docker-ce |
选择所需版本并安装:
1 | VERSION_STRING=5:29.0.4-1~ubuntu.24.04~noble |
启动服务
Docker 服务安装后自动启动。要验证 Docker 是否正在运行,请使用:
1 | sudo systemctl status docker |
一些系统可能已禁用此行为,需要手动启动:
1 | sudo systemctl start docker |
更改国内镜像
docker.io gcr.io 等国际镜像站访问受限,需要更改国内的镜像源,以加速镜像拉取。
可用镜像源列表(2025.2.6更新)
1 | 推荐组合使用 |
临时加速,单次有效
1 | 通用格式(镜像地址不加https://) |
永久配置,推荐
1 | 创建配置文件目录(已存在可跳过) |
🧪 验证配置
1 | docker info |
验证
验证安装是否成功,通过运行 hello-world 镜像:
1 | sudo docker run hello-world |
此命令下载一个测试镜像并在容器中运行它。当容器运行时,它会打印一条确认消息然后退出。
安装后的操作
以非root用户管理Docker
Docker 守护进程绑定到 Unix 套接字,而不是 TCP 端口。默认情况下,是 root 用户拥有 Unix 套接字,其他用户只能使用 sudo 访问它。Docker 守护进程始终以 root 用户身份运行。
如果您不想在 docker 命令前加上 sudo ,请创建一个名为 docker 的 Unix 组,并将用户添加到该组中。当 Docker 守护进程启动时,它会创建一个 Unix 套接字,该套接字可供 docker 组成员访问。在某些 Linux 发行版中,当使用包管理器安装 Docker Engine 时,系统会自动创建此组。在这种情况下,您无需手动创建组。
1 | # 查看所有群组 |
创建
docker群组,若已存在可跳过。1
sudo groupadd docker
将用户添加到
docker群组1
sudo usermod -aG docker $USER
注销并重新登录,以便重新评估您的组成员资格。
如果在虚拟机中运行 Linux,可能需要重新启动虚拟机以使更改生效。
还可以运行以下命令以激活对组的更改:
1 | newgrp docker |
- 确认可以在不使用
sudo的情况下运行docker命令。1
docker run hello-world
此命令会下载一个测试镜像并在容器中运行它。当容器运行时,它会打印一条消息然后退出。
如果最初在将用户添加到 docker 组之前使用 sudo 运行了 Docker CLI 命令,您可能会看到以下错误:
1 | WARNING: Error loading config file: /home/user/.docker/config.json - |
此错误表明由于之前使用了 sudo 命令, ~/.docker/ 目录的权限设置不正确。
要解决这个问题,可以删除 ~/.docker/ 目录(它会被自动重新创建,但任何自定义设置都会丢失),或者使用以下命令更改其所有权和权限:
1 | sudo chown "$USER":"$USER" /home/"$USER"/.docker -R |
配置Docker在启动时使用systemd启动
许多现代 Linux 发行版使用 systemd 来管理系统启动时启动哪些服务。在 Debian 和 Ubuntu 上,Docker 服务默认在启动时启动。要使其他使用 systemd 的 Linux 发行版在启动时自动启动 Docker 和 containerd,请运行以下命令:
1 | sudo systemctl enable docker.service |
要停止这种行为,请使用 disable 。
1 | sudo systemctl disable docker.service |
可以使用 systemd 单元文件来配置 Docker 服务在启动时的设置,例如添加 HTTP 代理、为 Docker 运行时文件设置不同的目录或分区,或进行其他自定义。
配置默认日志驱动程序
Docker 为收集和查看主机上所有容器运行的日志数据提供了日志驱动程序。默认的日志驱动程序 json-file 将日志数据写入主机文件系统中的 JSON 格式文件。随着时间的推移,这些日志文件会不断增大,可能导致磁盘资源耗尽。
为避免因过度使用磁盘存储日志数据而出现问题,请考虑以下选项之一:
- 配置
json-file日志驱动以开启日志轮转,JSON 文件日志驱动程序。 - 使用其他日志驱动程序,例如默认执行日志轮转的日志驱动程序,配置日志驱动程序
- 使用将日志发送到远程日志聚合器的日志驱动程序。







