Docker 安装(Ubuntu)
本章将详细介绍如何在 Ubuntu 系统上安装和配置 Docker Engine。
系统要求
Docker Engine 支持以下 Ubuntu 版本(64 位):
- Ubuntu 24.04 (Noble)
- Ubuntu 22.04 (Jammy)
- Ubuntu 20.04 (Focal)
硬件要求:
- 64 位处理器
- 内核版本 3.10 或更高
- 至少 2GB RAM(推荐 4GB 以上)
卸载旧版本
如果之前安装过旧版本的 Docker,需要先卸载:
bash
sudo apt-get remove docker docker-engine docker.io containerd runc安装方法一:使用 APT 仓库安装(推荐)
1. 更新包索引并安装依赖
bash
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg2. 添加 Docker 官方 GPG 密钥
bash
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg3. 添加 Docker APT 仓库
bash
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null4. 安装 Docker Engine
bash
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin5. 验证安装
bash
sudo docker run hello-world安装方法二:使用便捷脚本
Docker 提供了一键安装脚本,适合快速安装:
bash
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh⚠️ 便捷脚本不建议在生产环境使用,因为它会自动安装最新版本且无法自定义配置。
安装后配置
配置非 root 用户运行 Docker
默认情况下,Docker 命令需要 sudo 权限。将用户添加到 docker 组可以免去 sudo:
bash
# 创建 docker 组(通常安装时已自动创建)
sudo groupadd docker
# 将当前用户添加到 docker 组
sudo usermod -aG docker $USER
# 使组变更生效(或重新登录)
newgrp docker
# 验证无需 sudo 即可运行
docker run hello-world配置 Docker 开机自启
bash
# 设置开机自启
sudo systemctl enable docker.service
sudo systemctl enable containerd.service
# 如需禁用开机自启
sudo systemctl disable docker.service
sudo systemctl disable containerd.service配置 Docker Daemon
创建或编辑 /etc/docker/daemon.json:
bash
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<EOF
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
},
"storage-driver": "overlay2"
}
EOF
# 重启 Docker 使配置生效
sudo systemctl restart docker常见问题
权限问题
bash
# 如果遇到 "permission denied" 错误
sudo chmod 666 /var/run/docker.sock
# 或者确认用户已在 docker 组中
groups $USER服务启动失败
bash
# 检查 Docker 服务状态
sudo systemctl status docker
# 查看详细日志
sudo journalctl -xu docker.serviceDNS 解析问题
如果容器内无法解析域名,编辑 /etc/docker/daemon.json:
json
{
"dns": ["8.8.8.8", "8.8.4.4"]
}卸载 Docker
bash
# 卸载 Docker Engine
sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# 删除所有镜像、容器和数据卷
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd验证安装成功
bash
# 检查版本
docker --version
docker compose version
# 查看系统信息
docker info
# 运行测试容器
docker run hello-world如果所有命令正常执行,说明 Docker 在 Ubuntu 上安装成功。