环境:
- Docker version 1.6.2, build ba1f6c3/1.6.2
- Centos 7
- apache httpd 2.4.6
我创建了apache httpd的docker镜像。里面有简单的shell脚本启动httpd服务器。 我的start-httpd.sh
httpd -k start
#to keep process running
tail -f /dev/null
现在,我复制到docker镜像的配置类似于我在主机主机上运行的配置。
负载均衡器的示例配置:
<VirtualHost localhost:8000>
ServerName localhost
ProxyRequests off
ProxyPreserveHost on
ErrorLog logs/error_domain.log
SetHandler balancer-manager
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
<Location /balancer-manager>
SetHandler balancer-manager
Order allow,deny
Allow from all
</Location>
<Proxy balancer://idp>
BalancerMember http://punvm-core05.sigmasys.net:9091
BalancerMember http://punvm-core06.sigmasys.net:8091 status=+H
#ProxySet lbmethod=byrequests
ProxySet lbmethod=bytraffic
</Proxy>
ProxyPass /homepage balancer://idp
ProxyPassReverse /homepage balancer://idp
ProxyPass /assets balancer://idp/assets
ProxyPassReverse /assets balancer://idp/assets
ProxyPass /saml-idp balancer://idp/saml-idp
ProxyPassReverse /saml-idp balancer://idp/saml-idp
</VirtualHost>
现在这就是我运行docker image的方式,
docker run -d -p 10000:8000 auth/loadbalancer /home/start-httpd.sh
我可以访问http://localhost:10000,但我期望的页面不同
附加预期和意外的httpd服务器页面的快照
预期图片,这是来自我的主机:
访问映射到docker内部端口的apache时出现意外图像,如上面的docker命令
所述当我登录容器并执行curl命令时,作为回应,我可以看到Load balancer页面,但是从容器外部我看到了意外图像的响应。
请说明为什么会发生这种情况,我错过了什么。
答案 0 :(得分:0)
我能够解决这个问题。 我不得不像这样运行命令,
docker run -d --net=host auth/loadbalancer /home/start-httpd.sh
所以我这里不需要任何端口映射,所有翻译内部容器在使用时都会自动完成。