端口
将 TCP/UDP 服务直接暴露到主机
端口
将容器端口直接暴露到主机,用于数据库、游戏服务器等非 HTTP 应用。
何时使用端口
| 场景 | 解决方案 |
|---|---|
| Web 应用、API(HTTP/HTTPS) | 使用 域名 标签页 |
| 数据库(PostgreSQL、MySQL、Redis) | 使用 端口 |
| 游戏服务器、MQTT、自定义协议 | 使用 端口 |
HTTP/HTTPS 流量请在 域名 标签页配置。Senate 会自动处理 SSL 证书和反向代理。
添加端口映射
- 进入服务详情,选择 端口 标签页
- 点击 添加端口
- 配置端口映射:

| 字段 | 说明 | 示例 |
|---|---|---|
| 协议 | tcp 或 udp | tcp |
| 主机端口 | 主机上的端口 | 6379 |
| 容器端口 | 容器内的端口 | 6379 |
- 点击 保存
- 重新部署 服务以应用更改
端口更改需要重新部署才能生效,服务将在部署期间重启。
工作原理
┌─────────────────────────────────────────────────────┐
│ 主机 │
│ │
│ 外部流量 │
│ │ │
│ ▼ │
│ ┌─────────┐ ┌──────────────────────────┐ │
│ │ :6379 │ ───▶ │ 容器 │ │
│ │ (主机) │ │ ┌──────────────────┐ │ │
│ └─────────┘ │ │ Redis :6379 │ │ │
│ │ └──────────────────┘ │ │
│ └──────────────────────────┘ │
└─────────────────────────────────────────────────────┘配置 主机端口: 6379 → 容器端口: 6379 后:
- 外部客户端连接
服务器IP:6379 - Docker 将流量转发到容器的
6379端口
常见配置
相同端口(直接映射)
大多数服务内外端口一致:
| 服务 | 主机端口 | 容器端口 | 协议 |
|---|---|---|---|
| Redis | 6379 | 6379 | tcp |
| PostgreSQL | 5432 | 5432 | tcp |
| MySQL | 3306 | 3306 | tcp |
| MongoDB | 27017 | 27017 | tcp |
不同端口(端口重映射)
运行多个实例或避免冲突:
| 服务 | 主机端口 | 容器端口 | 协议 |
|---|---|---|---|
| Redis (开发) | 6380 | 6379 | tcp |
| PostgreSQL (测试) | 5433 | 5432 | tcp |
UDP 服务
游戏服务器和实时应用通常使用 UDP:
| 服务 | 主机端口 | 容器端口 | 协议 |
|---|---|---|---|
| Minecraft | 25565 | 25565 | udp |
| DNS | 53 | 53 | udp |
安全注意事项
暴露的端口可从互联网访问。请务必配置身份验证并考虑防火墙规则。
最佳实践:
- 为数据库设置强密码
- 通过防火墙限制访问(如
ufw、安全组) - 敏感服务考虑使用 SSH 隧道而非公开暴露
Compose 服务
Docker Compose 服务的端口映射在 docker-compose.yml 中定义。端口标签页以 只读 模式显示配置的端口。
services:
redis:
image: redis:alpine
ports:
- "6379:6379" # 主机端口:容器端口