Docker 提供多个端口映射的能力主要是为了满足以下几个关键需求,这些需求在实际开发和运维场景中非常常见:
bash
docker run -p 80:80 -p 443:443 -p 8080:8080 nginx
80
(HTTP)、443
(HTTPS)、8080
(管理面板)分别映射到宿主机。80
),而其他端口仅用于内部服务间通信(如数据库端口 3306
)。9229
用于 Node.js 调试)。9090
)或 Grafana(3000
)等监控工具的端口。80
)和 HTTPS(443
)。8080
替代 80
)。8001
、8002
),再通过反向代理(如 Nginx)分发流量。8080
),而生产环境用 80
和 443
。运行一个同时提供 Web 和数据库的容器:
docker run -p 80:80 -p 5432:5432 my_app
80
:外部用户访问 Web 界面。5432
:其他容器或内部服务访问数据库。-p 8080
让 Docker 自动分配宿主机端口(可通过 docker ps
查看)。通过多端口映射,Docker 提供了极大的灵活性,适应从开发到生产的各种复杂场景。