当前位置: 首页 > news >正文

在阿里云私网服务器(无公网IP)上安装 Docker 环境的完整指南

文章目录

    • @[toc]
  • 🐳 在阿里云私网服务器(无公网IP)上安装 Docker 环境的完整指南
    • 📌 背景与挑战
    • ✅ 前提条件
    • 🚀 解决方案概览
    • 🛠️ 安装步骤
      • 第一步:登录私网服务器
        • 方式 1:SSH 跳板机(Bastion Host)
        • 方式 2:阿里云 Web Terminal(推荐用于初始配置)
      • 第二步:配置阿里云 VPC 内网 YUM 源
      • 第三步:添加 Docker CE 内网源(关键步骤)
      • 第四步:安装 Docker 及 Compose 插件
      • 第五步:启动并启用 Docker 服务
      • 第六步:配置 Docker 内网镜像加速
    • ✅ 验证安装
    • 🧩 常见问题与解决方案
    • 💡 最佳实践建议
    • 📚 总结
    • 📎 参考链接

🐳 在阿里云私网服务器(无公网IP)上安装 Docker 环境的完整指南

适用场景:ECS 实例位于 VPC 内,无公网 IP,无法直接访问外网,但仍需部署 Docker 环境。
核心思路:利用阿里云 VPC 内网镜像源,无需 SNAT/NAT 网关,安全高效完成安装。


📌 背景与挑战

在企业级云架构中,出于安全考虑,许多后端服务部署在**私有网络(Private Network)**中,不分配公网 IP。这类服务器无法直接访问互联网,导致常规的 yum installdocker pull 操作失败。

然而,Docker 作为现代应用部署的核心工具,即使在私网环境中也必不可少。本文将手把手教你如何在 阿里云无公网 IP 的 ECS 实例上,顺利安装 Docker 及其相关组件(包括 docker-compose-plugin),并配置内网镜像加速。


✅ 前提条件

  • 一台阿里云 ECS 实例,位于 VPC 内,无公网 IP
  • 与跳板机或 Web Terminal 可连接(用于登录)
  • 操作系统:CentOS 7 / Alibaba Cloud Linux 2 / 其他基于 RHEL 的系统
  • 所在 VPC 与阿里云镜像服务同地域(如 cn-beijing

🚀 解决方案概览

我们不依赖公网访问,而是使用阿里云提供的 VPC 内网镜像源

服务公网地址✅ 推荐内网地址
YUM 源mirrors.aliyun.commirrors.cloud.aliyuncs.com
Docker CE 源download.docker.commirrors.cloud.aliyuncs.com/docker-ce
容器镜像服务 ACRregistry.cn-*.aliyuncs.comregistry-vpc.cn-*.aliyuncs.com

🔐 所有操作均通过内网完成,安全、快速、无需额外网络配置。


🛠️ 安装步骤

第一步:登录私网服务器

你可以通过以下任一方式登录:

方式 1:SSH 跳板机(Bastion Host)
ssh -J root@<跳板机公网IP> root@<私网服务器内网IP>
方式 2:阿里云 Web Terminal(推荐用于初始配置)
  1. 登录 ECS 控制台
  2. 找到目标实例 → 点击 “远程连接” → 使用 VNCWeb Terminal

第二步:配置阿里云 VPC 内网 YUM 源

# 备份原 repo(可选)
sudo cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak# 下载阿里云 VPC 内网 YUM 源
sudo curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.aliyuncs.com/repo/Centos-7.repo# 清除缓存
sudo yum clean all
sudo yum makecache

🔁 如果是 CentOS 8,请使用 Centos-8.repo


第三步:添加 Docker CE 内网源(关键步骤)

由于 mirrors.aliyun.com 的 HTTPS 证书在私网环境下可能引发校验失败,我们使用 HTTP 协议 + 关闭 GPG 校验(在阿里云可信环境中安全)。

sudo tee /etc/yum.repos.d/docker-ce.repo <<-'EOF'
[docker-ce-stable]
name=Docker CE Stable - x86_64
baseurl=http://mirrors.cloud.aliyuncs.com/docker-ce/linux/centos/7/x86_64/stable
enabled=1
gpgcheck=0
EOF

✅ 说明:

  • baseurl 使用 HTTP 内网地址
  • gpgcheck=0:关闭 GPG 校验(VPC 内安全)
  • 如为 CentOS 8,将 7 改为 8

第四步:安装 Docker 及 Compose 插件

sudo yum install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

✅ 该命令将自动从阿里云内网源下载并安装最新稳定版 Docker。


第五步:启动并启用 Docker 服务

sudo systemctl start docker
sudo systemctl enable docker

第六步:配置 Docker 内网镜像加速

使用阿里云容器镜像服务(ACR)的 VPC 内网地址,加速镜像拉取。

sudo mkdir -p /etc/dockersudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://registry-vpc.cn-beijing.aliyuncs.com"]
}
EOF

🔁 替换 cn-beijing 为你的实际地域(如 cn-hangzhoucn-shanghai

重启 Docker 生效:

sudo systemctl daemon-reload
sudo systemctl restart docker

✅ 验证安装

# 查看版本
docker --version
docker-compose --version# 运行测试容器
docker run --rm hello-world

如果看到 Hello from Docker!,恭喜你,Docker 环境已成功部署!


🧩 常见问题与解决方案

问题原因解决方案
Could not fetch repo: No route to host使用了公网镜像源改用 mirrors.cloud.aliyuncs.com
GPG key retrieval failedHTTPS 证书不匹配使用 HTTP + gpgcheck=0
docker pull 失败未配置镜像加速配置 registry-vpc 内网加速
DNS 解析失败缺少内网 DNS添加 100.100.2.136/etc/resolv.conf

💡 最佳实践建议

  1. 安全第一:私网服务器尽量不暴露公网 IP,使用跳板机或堡垒机管理。
  2. 使用 ACR:将镜像推送到阿里云容器镜像服务(ACR),通过 registry-vpc 内网拉取,更快更安全。
  3. 自动化部署:结合 Terraform 或 Ansible,批量部署私网 Docker 环境。
  4. 日志监控:配置日志服务(SLS)采集 Docker 容器日志。

📚 总结

在阿里云私网环境中安装 Docker,无需公网 IP,无需 SNAT 网关,只需正确使用阿里云提供的 VPC 内网镜像源

  • mirrors.cloud.aliyuncs.com:YUM 和 Docker 源
  • registry-vpc.cn-*.aliyuncs.com:镜像加速

通过本文的步骤,你可以在任何私网 ECS 实例上快速部署 Docker 环境,为微服务、CI/CD、容器化应用打下坚实基础。


📎 参考链接

  • 阿里云镜像站
  • 容器镜像服务 ACR
  • Docker 官方文档

作者:刘一说
发布日期:2025年9月18日
版权声明:本文首发于个人博客,转载请注明出处。

http://www.dtcms.com/a/389295.html

相关文章:

  • opencv DNN模块及利用实现风格迁移
  • 多层感知机:从感知机到深度神经网络的演进
  • centos7 docker compose 安装redis
  • ⸢ 肆-Ⅱ⸥ ⤳ 风险发现体系的演进(下):实践与演进
  • 18兆欧超纯水抛光树脂
  • 第三篇:C++的进化之旅:从C with Class到C++20
  • 机器视觉的手机FPC丝印应用
  • 在Windows上使用Claude Code并集成到PyCharm IDE的完整指南
  • MoPKL与SPAR的思考
  • Ubuntu 启动分配不到 ip 地址问题
  • iOS 推送证书配置 - p12
  • Qt QVPieModelMapper详解
  • 【MySQL数据库管理问答题】第1章 MySQL 简介
  • 铁头山羊视stm32-HAL库
  • iOS 26 帧率检测实战攻略 如何监控FPS、GPU渲染、Core Anima
  • AWS Lightsail vs 阿里云轻量:企业上云服务器选型深度对比
  • stm32中的位带操作的使用意义
  • Qt QStackedBarSeries详解
  • WebSocket Secure(WSS)在Django项目中的使用
  • RocketMQ 部署;与Golang服务交互
  • 南京某高校校园外卖点餐系统_django
  • 类的基础语法(笔记补充)
  • pycharm 连git 传文件到GitHub
  • 11 简答题-伪码转为NS图 PAD图
  • Java 中如何利用 CAS 实现原子操作?以AtomicInteger 为例
  • Custom SRP - Point And Spot Shadows
  • 无障碍前端组件实践(上):基础交互组件与色彩无障碍
  • 矩阵的导数运算
  • 微算法科技(NASDAQ:MLGO)多注意力循环网络:MARN技术如何让机器理解语言、手势与语音的微妙交互
  • 混合架构(SpringCloud+Dubbo)的整合方案与适用场景(二)