Skip to content

Ubuntu 安装 Docker

本文介绍在 Ubuntu 系统上安装 Docker Engine 的方法。

系统要求

Docker Engine 支持以下 Ubuntu 版本(64位):

  • Ubuntu 24.04 LTS(Noble Numbat)
  • Ubuntu 22.04 LTS(Jammy Jellyfish)
  • Ubuntu 20.04 LTS(Focal Fossa)

安装方式

Docker 官方提供三种安装方式:

  1. 官方 APT 仓库安装(推荐)
  2. 手动下载 DEB 包安装
  3. 一键安装脚本

本文介绍最推荐的 APT 仓库安装方式

方式一:官方 APT 仓库安装(推荐)

第一步:卸载旧版本

如果之前安装过旧版本,先卸载:

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

第二步:添加 Docker 官方 APT 仓库

bash
# 更新软件包索引,安装必要依赖
sudo apt-get update
sudo apt-get install -y ca-certificates curl

# 创建 keyrings 目录并添加 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

# 添加 Docker 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

第三步:安装 Docker Engine

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

第四步:验证安装

bash
# 查看 Docker 版本
docker version

# 运行测试容器
sudo docker run hello-world

方式二:使用国内镜像源(网络受限时)

如果官方仓库访问受限,可以使用阿里云镜像:

bash
# 安装依赖
sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg

# 添加阿里云 Docker GPG 密钥
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | \
  sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

# 添加阿里云 Docker 仓库
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
  https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

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

安装后配置

将用户加入 docker 组(免 sudo)

默认情况下运行 Docker 命令需要 sudo,将当前用户加入 docker 组可以免去 sudo

bash
# 创建 docker 用户组(通常已存在)
sudo groupadd docker

# 将当前用户加入 docker 组
sudo usermod -aG docker $USER

# 重新登录或执行以下命令使组权限生效
newgrp docker

# 验证
docker run hello-world

设置 Docker 开机自启

bash
# 启用开机自启
sudo systemctl enable docker.service
sudo systemctl enable containerd.service

# 启动 Docker 服务
sudo systemctl start docker

# 查看 Docker 状态
sudo systemctl status docker

配置镜像加速

编辑 /etc/docker/daemon.json

bash
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<EOF
{
  "registry-mirrors": [
    "https://docker.m.daocloud.io",
    "https://dockerhub.icu"
  ],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  }
}
EOF

# 重启 Docker 使配置生效
sudo systemctl daemon-reload
sudo systemctl restart docker

卸载 Docker

bash
# 卸载 Docker 软件包
sudo apt-get purge docker-ce docker-ce-cli containerd.io \
  docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras

# 删除镜像、容器、数据卷等数据
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd

# 删除仓库配置
sudo rm /etc/apt/sources.list.d/docker.list
sudo rm /etc/apt/keyrings/docker.asc

常见问题

权限问题:Got permission denied

Got permission denied while trying to connect to the Docker daemon socket

解决:将用户加入 docker 组后重新登录。

bash
sudo usermod -aG docker $USER
# 退出并重新登录

安装后 docker 命令找不到

bash
# 查看 Docker 是否安装成功
which docker
dpkg -l | grep docker

# 如果没有,检查安装步骤是否有错误

系统版本不支持

如果系统版本过旧,可以考虑升级系统,或使用 snap 安装:

bash
sudo snap install docker

总结

在 Ubuntu 上安装 Docker 推荐使用官方 APT 仓库方式,安装后记得:

  1. 将用户加入 docker 组,避免每次使用 sudo
  2. 设置开机自启
  3. 配置国内镜像加速

下一节介绍在 CentOS 上安装 Docker。