努力
奋斗

京东云服务器上使用Docker需要开启哪些安全组端口?

在京东云服务器上使用 Docker 时,是否需要开放安全组端口取决于你的具体应用场景。Docker 本身运行在宿主机上,默认使用本地 Unix 套接字(/var/run/docker.sock)进行通信,不需要对外暴露端口。但如果你有以下需求,则需要在安全组中开启相应的端口。


✅ 一、Docker 默认运行所需(无需额外开放端口)

  • Docker 守护进程默认监听本地套接字,不监听网络端口。
  • 只要你在服务器本地通过 docker 命令操作,无需在安全组中开放任何端口。

⚠️ 注意:不要随意将 Docker 守护进程暴露在公网(如绑定到 0.0.0.0:2375 或 2376),否则可能导致服务器被远程控制或X_X攻击。


✅ 二、需要开放安全组端口的常见场景

使用场景 所需端口 协议 说明
运行 Web 服务(如 Nginx、Apache) 80(HTTP)
443(HTTPS)
TCP 访问网站必须开放
SSH 连接服务器管理 22 TCP 管理服务器必备
自定义应用端口(如 Node.js、Spring Boot) 如 3000, 8080, 9000 等 TCP 根据应用配置开放
Docker Registry(私有镜像仓库) 5000 TCP 若搭建私有 registry 需开放
Docker Swarm 模式集群通信 2377(管理端口)
7946(节点通信)
4789(overlay 网络)
TCP/UDP 仅用于多主机集群
远程 Docker API(不推荐公网开放) 2375(非加密)
2376(TLS 加密)
TCP 仅建议内网或通过 VPC 访问
数据库容器对外提供服务 如 MySQL 3306、Redis 6379、MongoDB 27017 TCP 仅建议限制 IP 或走内网

✅ 三、推荐的安全组配置(最小化原则)

建议只开放必要的端口,并限制源 IP:

端口 来源 IP 用途
22 你的办公/家庭公网 IP SSH 登录
80 0.0.0.0/0 公开访问 HTTP
443 0.0.0.0/0 公开访问 HTTPS
3000-3010 你信任的 IP 段 自定义应用调试
5000 内网 IP 或特定 IP 私有镜像仓库

? 强烈建议:

  • 不要开放 2375 到公网;
  • 数据库类端口(如 3306)应限制为内网或跳板机访问;
  • 使用 VPC 和子网隔离不同服务。

✅ 四、Docker 网络与端口映射说明

当你使用如下命令启动容器时:

docker run -d -p 8080:80 nginx
  • -p 8080:80 表示将宿主机的 8080 端口映射到容器的 80 端口。
  • 此时你需要在 京东云安全组中开放宿主机的 8080 端口,才能从网络访问。

✅ 总结:你需要做什么?

  1. 基础运维:开放 22(SSH)、80、443(Web 服务)。
  2. 自定义服务:按需开放对应端口(如 3000, 8080)。
  3. 避免风险:不要暴露 Docker API(2375/2376)到公网。
  4. 集群部署:如用 Swarm,再考虑 2377、7946、4789。
  5. 最小权限:安全组遵循“最小开放”原则,限制源 IP。

如有具体应用(如部署 WordPress、Nginx、Node.js、MySQL),可以告诉我,我可以给出更精确的端口建议。

未经允许不得转载:云服笔记 » 京东云服务器上使用Docker需要开启哪些安全组端口?