多容器与 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
我希望能够访问同一主机上包含 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