Skip to content
OpenInfoHub
Go back

Ubuntu 系统下 Docker 和 Docker Compose 完整安装指南

本教程将指导你在 Ubuntu 系统上安装 Docker Engine 和 Docker Compose 插件。内容基于 Docker 官方文档整理,涵盖多种安装方式和常见问题解决方案。

Table of contents

Open Table of contents

前置要求

系统要求

安装 Docker Engine 需要 64 位版本的以下 Ubuntu 版本之一:

Docker Engine 支持的架构:x86_64 (amd64)、armhf、arm64、s390x 和 ppc64le (ppc64el)。

注意:在 Ubuntu 衍生发行版(如 Linux Mint)上的安装不受官方支持,但可能可以正常工作。

防火墙注意事项

在安装 Docker 之前,需要了解以下安全影响:

第一步:卸载旧版本

在安装 Docker Engine 之前,需要卸载所有冲突的软件包。

卸载非官方包

运行以下命令卸载所有冲突的包:

for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do
  sudo apt-get remove $pkg
done

注意:存储在 /var/lib/docker/ 中的镜像、容器、卷和网络在卸载 Docker 时不会自动删除。如果想要全新安装并清理现有数据,请参考本文末尾的卸载部分。

第二步:安装 Docker Engine

Docker Engine 有多种安装方式,本教程重点介绍使用 apt 仓库安装的方法,这是最推荐的方式。

方法一:使用 apt 仓库安装(推荐)

1. 设置 Docker 的 apt 仓库

# 添加 Docker 的官方 GPG 密钥
sudo apt-get update
sudo apt-get install ca-certificates curl
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

# 将仓库添加到 Apt 源
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt-get update

2. 安装 Docker 包

安装最新版本:

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

安装特定版本:

# 列出可用版本
apt-cache madison docker-ce | awk '{ print $3 }'

# 安装指定版本(将 VERSION_STRING 替换为实际版本号)
VERSION_STRING=5:27.0.0-1~ubuntu.24.04~noble
sudo apt-get install docker-ce=$VERSION_STRING docker-ce-cli=$VERSION_STRING containerd.io docker-buildx-plugin docker-compose-plugin

3. 验证安装

Docker 服务在安装后会自动启动。验证 Docker 是否正在运行:

sudo systemctl status docker

如果服务未启动,手动启动:

sudo systemctl start docker

运行 hello-world 镜像验证安装成功:

sudo docker run hello-world

如果看到欢迎消息,说明 Docker Engine 已成功安装并运行。

方法二:使用便捷脚本安装

Docker 提供了便捷脚本用于快速安装,适合开发和测试环境。

警告:便捷脚本不推荐用于生产环境。使用前请了解其潜在风险和限制。

预览脚本步骤

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh ./get-docker.sh --dry-run

执行安装

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

在基于 Debian 的发行版上,docker 服务会自动启动。在基于 RPM 的发行版(如 CentOS、Fedora 或 RHEL)上,需要手动启动。

方法三:手动安装 deb 包

如果无法使用 apt 仓库,可以手动下载并安装 deb 包。

1. 下载包文件

访问 https://download.docker.com/linux/ubuntu/dists/

  1. 选择你的 Ubuntu 版本
  2. 进入 pool/stable/ 并选择适用的架构
  3. 下载以下 deb 文件:
    • containerd.io_<version>_<arch>.deb
    • docker-ce_<version>_<arch>.deb
    • docker-ce-cli_<version>_<arch>.deb
    • docker-buildx-plugin_<version>_<arch>.deb
    • docker-compose-plugin_<version>_<arch>.deb

2. 安装包

sudo dpkg -i ./containerd.io_<version>_<arch>.deb \
  ./docker-ce_<version>_<arch>.deb \
  ./docker-ce-cli_<version>_<arch>.deb \
  ./docker-buildx-plugin_<version>_<arch>.deb \
  ./docker-compose-plugin_<version>_<arch>.deb

3. 验证安装

sudo systemctl status docker
sudo docker run hello-world

第三步:安装 Docker Compose

如果你使用上述方法安装了 Docker Engine,Docker Compose 插件已经包含在内。你可以验证安装:

docker compose version

手动安装 Docker Compose(可选)

如果需要手动安装或更新 Docker Compose 插件:

为当前用户安装

DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
mkdir -p $DOCKER_CONFIG/cli-plugins
curl -SL https://github.com/docker/compose/releases/download/v2.24.5/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose
chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose

为所有用户安装

sudo mkdir -p /usr/local/lib/docker/cli-plugins
sudo curl -SL https://github.com/docker/compose/releases/download/v2.24.5/docker-compose-linux-x86_64 -o /usr/local/lib/docker/cli-plugins/docker-compose
sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose

验证安装

docker compose version

更新 Docker Compose

使用 apt 仓库安装的用户:

sudo apt-get update
sudo apt-get install docker-compose-plugin

手动安装的用户需要重新下载并安装新版本。

后续配置

允许非 root 用户运行 Docker

默认情况下,只有 root 用户和 docker 组的用户才能运行 Docker 命令。

1. 创建 docker 组(通常已存在)

sudo groupadd docker

2. 将当前用户添加到 docker 组

sudo usermod -aG docker $USER

3. 注销并重新登录

或者运行以下命令激活组更改:

newgrp docker

4. 验证无需 sudo 即可运行

docker run hello-world

配置 Docker 开机自启

sudo systemctl enable docker.service
sudo systemctl enable containerd.service

升级 Docker

使用 apt 仓库升级

sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

使用便捷脚本安装后升级

如果使用便捷脚本安装,应直接使用包管理器升级,不要重新运行脚本。

sudo apt-get update
sudo apt-get upgrade docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

卸载 Docker

1. 卸载 Docker 包

sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras

2. 删除所有镜像、容器和卷

sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd

3. 删除源列表和密钥环

sudo rm /etc/apt/sources.list.d/docker.list
sudo rm /etc/apt/keyrings/docker.asc

注意:主机上的任何编辑过的配置文件必须手动删除。

常见问题

运行 Docker 命令时出现权限错误

如果看到类似 “permission denied” 的错误,说明你的用户不在 docker 组中。按照”允许非 root 用户运行 Docker”部分的步骤操作。

Docker 服务无法启动

检查服务状态和日志:

sudo systemctl status docker
sudo journalctl -xeu docker.service

网络问题

如果遇到网络相关问题,可能需要配置 DNS 或代理设置。编辑 /etc/docker/daemon.json

{
  "dns": ["8.8.8.8", "8.8.4.4"]
}

重启 Docker 服务:

sudo systemctl restart docker

总结

本教程介绍了在 Ubuntu 系统上安装 Docker Engine 和 Docker Compose 的完整流程。推荐使用 apt 仓库安装方法,这样可以方便地进行后续更新和维护。安装完成后,记得配置非 root 用户权限和开机自启,以获得更好的使用体验。

更多信息请参考:


内容基于 Docker 官方文档改编,遵循 Apache License, Version 2.0。


Share this post on:

Previous Post
frp 内网穿透完整部署指南:服务端与客户端配置教程
Next Post
Jupyter Notebook 安装与配置实操教程