什么是 Docker Compose 端口映射?
在使用 Docker Compose 编排多个容器时,常常需要将容器内部的服务端口映射到宿主机上,以便外部网络可以访问。
这通过 ports 字段实现,支持短格式(如 "8080:80")和长格式(如 target: 80, published: 8080)。
基本配置示例
以下是一个典型的 docker-compose.yml 文件,展示了如何将 Nginx 容器的 80 端口映射到宿主机的 8080 端口:
version: '3.8'
services:
web:
image: nginx:latest
ports:
- "8080:80"
restart: always
高级用法
你也可以指定协议、仅绑定特定 IP 或使用长格式语法:
ports:
- "127.0.0.1:8080:80/tcp"
- published: 3000
target: 3000
protocol: tcp
mode: host
常见问题
- 端口冲突:确保宿主机端口未被其他程序占用。
- 防火墙限制:某些云服务器需额外开放安全组规则。
- 仅限本地访问:使用
127.0.0.1:8080:80可限制仅本机可访问。