背景信息:
我有一个带有apache2的Debian。我可以通过以下ip访问此Debian:192.168.12.28。
在这个Debian上,我有两个带有以下ips的容器:
-172.18.0.2
-172.19.0.2
问题:
我想从外面访问我的container1,例如: 192.168.12.28/container1 要么 myDomain的/ container1
我尝试了什么:
两个域名: test1.domain.fr,包含以下test1.domain.fr.conf:
<VirtualHost *:80>
ServerName test1.domain.fr
ProxyPass / http://172.18.0.2:8080/
ProxyPassReverse / http://172.18.0.2:8080/
ProxyRequests Off
</VirtualHost>
test2.domain.fr,包含以下test2.domain.fr.conf:
<VirtualHost *:80>
ServerName test2.domain.fr
ProxyPass / http://172.19.0.2:8080/
ProxyPassReverse / http://172.19.0.2:8080/
ProxyRequests Off
</VirtualHost>
我已启用域名:
a2ensite test1.domain.fr
a2ensite test2.domain.fr
我有什么:
当我想访问192.168.12.28时: Apache的页面&#34;它有效!&#34;
当我想访问192.168.12.28/test1.domain.fr或192.168.12.28/test2.domain.fr时: 在此服务器上找不到请求的URL / test1(或2).domain.fr。
当我想访问test1.domain.fr或test2.domain.fr时: 找不到test1(或2).domain.fr
感谢您的帮助和帮助 对不起我的英语不好! : - )
编辑:我目前正在搜索,但我现在无法使其正常使用!
编辑:我的容器1的配置如下:&#34; 8081:8080&#34;和&#34; 444:443&#34;我的container2配置如下:&#34; 8080:8080&#34;和&#34; 443:443&#34;
这里编辑的是我的docker-compose文件:
第一个容器:
version: '2'
services:
php:
build: php
ports:
- "8080:8080"
- "443:443"
volumes:
- ./php/www:/var/www/html
第二个容器:
version: '2'
services:
php:
build: php
ports:
- "8081:8080"
- "444:443"
volumes:
- ./php/www:/var/www/html
答案 0 :(得分:1)
如果它是单个Docker主机(例如,不在Swarm模式下),则无法将两个容器映射到同一主机端口...试试这个:
docker run <...> -p 3000:80 <...> # e.g. for test1
docker run <...> -p 5000:80 <...> # e.g. for test2
相应地调整ProxyPass
和ProxyPassReverse
,例如:
ProxyPass / http://172.18.0.2:3000/ # e.g. for test1
ProxyPass / http://172.19.0.2:5000/ # e.g. for test2
参考(使用nginx作为apache代理的完整示例): https://www.digitalocean.com/community/questions/how-to-bind-multiple-domains-ports-80-and-443-to-docker-contained-applications