Docker Compose中端口映射通过services下ports字段配置,最常用格式为“宿主机端口:容器端口”,如"8080:80";支持绑定指定IP增强安全、端口范围映射(如"8000-8010:8000-8010")、TCP/UDP协议指定及动态端口分配。

直接在 services 下对应服务的 ports 字段里写映射规则就行,最常用的是 宿主机端口:容器端口 格式。
基础单端口映射
这是最常见的方式,明确指定宿主机哪个端口连到容器哪个端口:
-
"8080:80"表示访问宿主机localhost:8080就等于访问容器内运行在80的服务 - 注意顺序:左边是宿主机端口(可选范围通常为 1–65535),右边是容器内实际监听的端口
- 如果宿主机端口被占用,
docker-compose up会报错退出
限制访问范围(增强安全)
不希望服务被外网访问时,可以绑定到特定 IP,比如只允许本机访问:
MiniMax 图片理解 + 网络搜索 MCP 工具。适配 Docker 环境(极空间等),支持图片 OCR 识别、图像内容理解、网络搜索。API Key 安全存储在本地 credentials 文件,不暴露在代码中。
-
"127.0.0.1:5000:5000"—— 只有宿主机自己能通过curl http://localhost:5000访问 -
"192.168.1.100:3000:3000"—— 仅局域网内该 IP 对应的机器可访问(需确保 Docker 网络支持) - 避免写成
"0.0.0.0:6379:6379"这类全网暴露,尤其对 Redis、MongoDB 等无认证服务风险很高
批量端口或端口范围映射
适合需要暴露多个连续端口的服务,比如游戏服务器、媒体流或调试工具:
-
"8000-8010:8000-8010"—— 把宿主机 8000–8010 映射到容器相同范围,共 11 个端口 - 两端端口数量必须一致,不能写成
"8000-8010:80" - 也可混用,例如
"8080:80"和"8443:443"同时存在,每行一条
协议与动态端口
默认走 TCP,但某些服务依赖 UDP;另外不想固定端口时可让 Docker 自动分配:
- 显式指定协议:
"53:53/udp"或"53:53/tcp",DNS 类服务常需两者都配 - 省略宿主机端口:
":80"或"80"—— Docker 随机选一个空闲端口(如 32768),用docker-compose port 服务名 80查看实际映射 - 若用
network_mode: host,则容器直接使用宿主机网络,ports字段失效,容器内监听的80就是宿主机的80

















