Docker组合多个服务侦听同一端口、不同域
如何让多个docker服务只使用不同的域监听同一端口 甚至可以在Docker组合多个服务侦听同一端口、不同域,docker,docker-compose,network-programming,Docker,Docker Compose,Network Programming,如何让多个docker服务只使用不同的域监听同一端口 甚至可以在docker compose中定义,还是只需要一个服务监听端口,然后根据域将流量重新路由到相应的服务 这个例子失败了,因为它监听的是整个网络(而不仅仅是域) docker-compose.yml /etc/主持人 只能将一个容器映射到主机的同一端口。如果您想在同一主机端口上映射2个服务,那么应该使用像Traefik(与docker集成良好)这样的反向代理。反向代理将侦听主机端口80,然后转发到未映射到主机的端口上的特定docker
docker compose
中定义,还是只需要一个服务监听端口,然后根据域将流量重新路由到相应的服务
这个例子失败了,因为它监听的是整个网络(而不仅仅是域) docker-compose.yml /etc/主持人
只能将一个容器映射到主机的同一端口。如果您想在同一主机端口上映射2个服务,那么应该使用像Traefik(与docker集成良好)这样的反向代理。反向代理将侦听主机端口80,然后转发到未映射到主机的端口上的特定docker容器,具体取决于一些已定义的规则,如别名、url路径。您只能将一个容器映射到主机的同一端口。如果您想在同一主机端口上映射2个服务,那么应该使用像Traefik(与docker集成良好)这样的反向代理。反向代理将侦听主机端口80,然后转发到未映射到主机的端口上的特定docker容器,具体取决于一些已定义的规则,如别名、url路径。您应该使用反向代理。例如,您可以在dockerhub.io上查看jwlider/nginx,文档非常好 您应该使用反向代理。例如,您可以在dockerhub.io上查看jwlider/nginx,文档非常好
docker-compose up
Creating network "test-docker_default" with the default driver
Creating test-docker_static_1 ... done
Creating test-docker_app_1 ...
Creating test-docker_app_1 ... error
ERROR: for test-docker_app_1 Cannot start service app: driver failed programming external connectivity on endpoint test-docker_app_1 (ef433ffad1af01ffa31cd8a69a8c15b69ca7e7b6935924d34891b92682570e68): Bind for 0.0.0.0:80 failed: port is already allocated
ERROR: for app Cannot start service app: driver failed programming external connectivity on endpoint test-docker_app_1 (ef433ffad1af01ffa31cd8a69a8c15b69ca7e7b6935924d34891b92682570e68): Bind for 0.0.0.0:80 failed: port is already allocated
version: '3.3'
services:
app:
image: node
depends_on:
- static
networks:
default:
aliases:
- app.localhost
ports:
- 80:80
static:
image: nginx
networks:
default:
aliases:
- static.localhost
ports:
- 80:80
127.0.0.1 app.localhost
127.0.0.1 static.localhost