Apache httpd在运行docker镜像时表现不正常

时间:2015-07-23 14:54:39

标签: apache docker httpd.conf

环境:

- 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服务器页面的快照

预期图片,这是来自我的主机:

enter image description here

访问映射到docker内部端口的apache时出现意外图像,如上面的docker命令

所述

enter image description here

当我登录容器并执行curl命令时,作为回应,我可以看到Load balancer页面,但是从容器外部我看到了意外图像的响应。

请说明为什么会发生这种情况,我错过了什么。

1 个答案:

答案 0 :(得分:0)

我能够解决这个问题。 我不得不像这样运行命令,

docker run  -d --net=host auth/loadbalancer /home/start-httpd.sh

所以我这里不需要任何端口映射,所有翻译内部容器在使用时都会自动完成。