在 Ubuntu 22.04 国外 VPS 上安装 Docker 环境,最推荐通过 Docker 官方 apt 仓库进行安装,适用于需要稳定版本和长期维护的生产场景,主要风险边界在于服务器到 download.docker.com 的网络连通性。
先说结论:使用官方 apt 仓库安装是 Ubuntu 22.04 上最标准且易于维护的方案。
- 适合:Ubuntu 22.04 LTS 系统及具备 sudo 权限的用户
- 先看:确认服务器能正常解析并连接 Docker 官方源
- 建议:安装完成后务必运行 hello-world 容器验证环境
命令速用版
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
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
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
为什么会这样
官方 apt 仓库能提供最新的稳定版本且支持自动更新,比 Ubuntu 自带仓库的 Docker 版本更新。
Ubuntu 默认仓库中的 Docker 版本往往滞后,而通过配置 Docker 官方源,可以确保获取到经过测试的最新稳定版引擎,同时方便后续通过 apt 命令进行版本升级或卸载。
分步处理
第一步是清理可能冲突的旧版本,避免安装失败。
for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done
第二步是设置 apt 源并安装 Docker 引擎,需确保 gpg 密钥写入正确。
执行上述“命令速用版”中的脚本,注意观察 curl 下载密钥和 apt-get update 是否有报错。
第三步是启动 Docker 服务并设置开机自启,确保服务状态正常。
sudo systemctl start docker
sudo systemctl enable docker
怎么验证是否生效
运行官方 hello-world 镜像是验证 Docker 引擎是否可用的最直接方法。
sudo docker run hello-world
如果终端输出"Hello from Docker!"及相关说明文字,表示安装成功。此外,可以使用docker version查看客户端和服务端版本号是否一致。
常见坑
权限不足和非 root 用户无法执行 docker 命令是常见问题。
- 权限问题:普通用户执行 docker 命令需加 sudo,或将用户加入 docker 用户组。
- 网络超时:国外 VPS 虽通常连通性较好,但若遇 download.docker.com 超时,需检查 DNS 或网络路由。
- 冲突包:未卸载 Ubuntu 自带的 docker.io 可能导致路径冲突。
常见问题
如何不加 sudo 运行 docker 命令?
将当前用户加入 docker 用户组即可。
执行sudo usermod -aG docker $USER后注销并重新登录会话生效。
安装过程中 apt-get update 报错怎么办?
通常是网络无法连接 Docker 源或 GPG 密钥验证失败。
检查服务器 DNS 设置,或手动重新执行密钥下载和源配置步骤。
参考来源
Docker Official Documentation - Install Docker Engine on Ubuntu
URL: https://docs.docker.com/engine/install/ubuntu/