在 Linux 服务器(Ubuntu)上部署服务时,Docker 是最基础的工具。但在国内网络环境下,不仅安装过程可能缓慢,安装后的镜像拉取(docker pull)也常因网络超时而失败。
本文整合了官方标准安装步骤与网络代理配置方案,助您在 Ubuntu 上快速搭建稳定的 Docker 环境。
第一部分:安装 Docker Engine (标准版)
我们推荐使用 Docker 官方源安装,以确保版本最新且稳定。
1. 卸载旧版本(可选)
如果系统之前安装过旧版 Docker,建议先清理,避免冲突:
Bash
sudo apt-get remove docker docker-engine docker.io containerd runc
2. 配置官方软件源
安装必要的依赖工具,并添加 Docker 的 GPG 密钥和仓库地址:
Bash
# 更新索引并安装依赖
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
# 添加 Docker 官方 GPG 密钥
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.gpg
# 写入软件源信息
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/null
3. 正式安装
更新索引(让系统识别新加入的源)并安装:
Bash
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
第二部分:配置 Docker 代理 (解决镜像拉取失败)
安装完成后,直接运行 docker pull 往往会超时。最彻底的解决方法是让 Docker 守护进程(Daemon)走代理。
1. 创建 Systemd 配置目录
Docker 服务由 systemd 管理,我们需要覆盖其默认配置。
Bash
sudo mkdir -p /etc/systemd/system/docker.service.d
2. 编辑代理配置文件
创建文件 /etc/systemd/system/docker.service.d/http-proxy.conf:
Bash
sudo nano /etc/systemd/system/docker.service.d/http-proxy.conf
3. 填入代理信息
将下方内容的 127.0.0.1:7890 替换为您实际的代理服务器 IP 和端口(例如局域网内的 Clash/V2Ray 端口):
Ini, TOML
[Service]
Environment="HTTP_PROXY=http://127.0.0.1:7890"
Environment="HTTPS_PROXY=http://127.0.0.1:7890"
Environment="NO_PROXY=localhost,127.0.0.1,::1"
(注:NO_PROXY 用于确保本地通讯不走代理,保持性能。)
4. 重载配置并重启服务
修改 systemd 配置后,必须执行重载才能生效:
Bash
sudo systemctl daemon-reload
sudo systemctl restart docker
第三部分:验证与优化
1. 检查代理是否生效
运行以下命令,查看输出的环境变量中是否包含 Proxy 信息:
Bash
sudo docker info | grep Proxy
如果输出显示了您配置的 IP 和端口,说明配置成功。
2. 测试拉取镜像
运行 Hello World 容器,测试是否能连通 Docker Hub:
Bash
sudo docker run hello-world
3. (可选) 免 Sudo 使用 Docker
默认情况下 Docker 需要 root 权限。如果您想直接使用 docker 命令而不是 sudo docker,请执行:
Bash
sudo groupadd docker # 创建组(通常已存在)
sudo usermod -aG docker $USER # 将当前用户加入组
newgrp docker # 立即刷新组权限
总结:通过上述步骤,您已经拥有了一个安装规范、且具备科学网络环境的 Docker 平台,可以顺畅地拉取和运行各类容器服务了。
下一步: 需要为您介绍如何使用 Portainer 来通过网页图形化界面管理这些 Docker 容器吗?