Ubuntu 22.04 安装 Docker 完整指南
1. 卸载旧版本的 Docker(如果之前安装过)
运行以下命令卸载旧版本的 Docker:
sudo apt-get remove docker docker-engine docker.io containerd runc
2. 安装必要的依赖
运行以下命令安装必要的依赖:
sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg lsb-release
3. 添加 Docker 官方 GPG 密钥
运行以下命令添加 Docker 官方 GPG 密钥:
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
注意事项:
- 确保
/etc/apt/keyrings
目录的权限正确,运行以下命令:sudo chmod -R 755 /etc/apt/keyrings
4. 设置 Docker 的 APT 仓库
运行以下命令将 Docker 的官方仓库添加到系统的软件源列表中:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
5. 安装 Docker 引擎
运行以下命令安装 Docker 引擎及其相关组件:
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
6. 验证 Docker 是否安装成功
运行以下命令验证 Docker 是否安装成功:
sudo docker run hello-world
如果看到类似“Hello from Docker!”的输出信息,说明 Docker 安装成功。
7. 配置国内镜像源(可选,但推荐)
为了加速镜像拉取速度,建议配置国内镜像源。编辑 /etc/docker/daemon.json
文件(如果不存在则创建),添加以下内容:
sudo nano /etc/docker/daemon.json
在文件中添加以下内容:
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"https://dockerhub.azk8s.cn",
"https://reg-mirror.qiniu.com"
]
}
保存文件后,重启 Docker 服务以使配置生效:
sudo systemctl restart docker
注意事项:
- 确保
/etc/docker/daemon.json
文件格式正确,避免语法错误。 - 如果文件已存在,请不要覆盖原有内容,而是合并新的
registry-mirrors
配置。
8. 将当前用户添加到 docker
组(可选)
为了避免每次运行 Docker 命令时都需要使用 sudo
,可以将当前用户添加到 docker
组:
sudo usermod -aG docker ${USER}
完成操作后,注销并重新登录,或者重启系统以使组变更生效。
注意事项:
- 在将用户添加到
docker
组后,重新登录或重启系统是必要的,否则组变更不会生效。
9. 验证国内镜像源是否生效
运行以下命令拉取一个镜像,验证国内镜像源是否生效:
sudo docker pull hello-world
如果镜像能够快速拉取,说明国内镜像源配置成功。
10. 推荐操作
- 创建 Docker ID:访问 Docker Hub 注册一个免费的 Docker ID,方便你分享镜像和自动化工作流程。
- 学习更多:访问 Docker 官方入门指南,了解 Docker 的基础概念和高级用法。
11. 常见问题
- 网络问题:如果无法连接到 Docker Hub,确保网络正常,并检查防火墙或代理设置。
- 权限问题:如果遇到权限问题,确保
/etc/apt/keyrings
目录及其文件的权限正确。 - 配置文件问题:确保
/etc/docker/daemon.json
文件格式正确,避免语法错误。