Appearance
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 官方提供三种安装方式:
- 官方 APT 仓库安装(推荐)
- 手动下载 DEB 包安装
- 一键安装脚本
本文介绍最推荐的 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 仓库方式,安装后记得:
- 将用户加入
docker组,避免每次使用sudo - 设置开机自启
- 配置国内镜像加速
下一节介绍在 CentOS 上安装 Docker。