Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker组合多个服务侦听同一端口、不同域_Docker_Docker Compose_Network Programming - Fatal编程技术网

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服务只使用不同的域监听同一端口

甚至可以在
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