多容器与 Traefik(反向代理)解决方案

multiple container with Traefik (reverse-proxy) solution

我希望能够访问同一主机上包含 Web 应用程序的多个容器。因此,我的主机可以通过 IP 地址访问,我希望从外部能够使用 URL 访问我的容器,例如 :

ip_host/container1

为了让它工作,我找到了 Traefik solution. First, I followed the traefick quick start

所以这是我的 docker-compose.yml 文件:

version: "2"
services:
    traefik:
        image: traefik
        command: --web --docker --docker.domain=docker.localhost --logLevel=DEBUG
         ports:
         - "80:80"
         - "8080:8080"
         - "443:443"
         volumes:
         - /var/run/docker.sock:/var/run/docker.sock
         - /dev/null:/traefik.toml
     php1:
         image: php:7.0-apache
         labels:
         - "traefik.backend=php1"
         - "traefik.frontend.rule=Host:php1"
         volumes:
         - ./php1:/var/www/html
     php2:
         image: php:7.0-apache
         labels:
         - "traefik.backend=php2"
         - "traefik.frontend.rule=Host:php2"
         volumes:
         - ./php2:/var/www/html

之后
docker-compose up -d

我无法使用以下命令 curl/reach 我的任何容器:

curl -H Host:php1 http://host01

我理解Traefick的使用了吗?只是我构建它的方式不好吗?我是否必须向 /etc/hosts 添加一些新条目?

请尝试:

curl -H Host:php1 http://php1