Docker-Compose HAProxy缺less前端

我正在尝试使用HAProxy作为使用redis的python webapp的负载平衡器。 我正在使用docker-compose.yml将docker run命令转换为docker-compose – 但是我遇到了问题

下面是我目前的“docker运行”命令,它工作得很好!

docker run --name sdnapi-redis -v /opt/redis:/data -p 6379:6379 -d redis redis-server --appendonly yes docker run -d --name sdnapi1 --link sdnapi-redis:redis mycomp/sdnapi docker run -d --name sdnapi2 --link sdnapi-redis:redis mycomp/sdnapi docker run -d --name sdnapilb -p 80:80 -p 443:443 -p 1936:1936 -e DEFAULT_SSL_CERT="$(awk 1 ORS='\\n' ./certs/cert.pem)" -v /certs/:/certs/ --link sdnapi1:sdnapi1 --link sdnapi2:sdnapi2 dockercloud/haproxy 

这是我的docker-compose.yml应该复制相同的function

 version: '2' services: sdnapi: image: mycomp/sdnapi links: - sdnapi-redis:redis sdnapilb: image: dockercloud/haproxy:1.2.1 environment: - DEFAULT_SSL_CERT volumes: - /certs/:/certs/ ports: - "80:80" - "443:443" - "1936:1936" links: - sdnapi:sdnapi sdnapi-redis: image: redis volumes: - /opt/redis:/data ports: - "6379:6379" command: redis-server --appendonly yes 

当我运行docker运行命令时,这是sdnapilb日志:

  global log 127.0.0.1 local0 log 127.0.0.1 local1 notice log-send-hostname maxconn 4096 pidfile /var/run/haproxy.pid user haproxy group haproxy daemon stats socket /var/run/haproxy.stats level admin ssl-default-bind-options no-sslv3 ssl-default-bind-ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:AES128-GCM-SHA256:AES128-SHA256:AES128-SHA:AES256-GCM-SHA384:AES256-SHA256:AES256-SHA:DHE-DSS-AES128-SHA:DES-CBC3-SHA defaults balance roundrobin log global mode http option redispatch option httplog option dontlognull option forwardfor timeout connect 5000 timeout client 50000 timeout server 50000 listen stats bind :1936 mode http stats enable timeout connect 10s timeout client 1m timeout server 1m stats hide-version stats realm Haproxy\ Statistics stats uri / stats auth stats:stats frontend default_frontend bind :80 bind :443 ssl crt /certs/ reqadd X-Forwarded-Proto:\ https maxconn 4096 defcon 1 default_backend default_service 

当我用“docker-compose up -d”运行docker-compose.yml时,我失去了前端部分。

 global log 127.0.0.1 local0 log 127.0.0.1 local1 notice log-send-hostname maxconn 4096 pidfile /var/run/haproxy.pid user haproxy group haproxy daemon stats socket /var/run/haproxy.stats level admin ssl-default-bind-options no-sslv3 ssl-default-bind-ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:AES128-GCM-SHA256:AES128-SHA256:AES128-SHA:AES256-GCM-SHA384:AES256-SHA256:AES256-SHA:DHE-DSS-AES128-SHA:DES-CBC3-SHA defaults balance roundrobin log global mode http option redispatch option httplog option dontlognull option forwardfor timeout connect 5000 timeout client 50000 timeout server 50000 listen stats bind :1936 mode http stats enable timeout connect 10s timeout client 1m timeout server 1m stats hide-version stats realm Haproxy\ Statistics stats uri / stats auth stats:stats 

你能看到任何设置的任何问题? 我想用docker-compose来扩展它的能力。

我想出了这个问题

docker-compose.yml与链接有问题..链接的格式是服务名称别名

我的问题是,即使我的服务名称是正确的, 别名'是不正确的 ……导致docker组成失败,没有一个实际的错误。 由于别名不存在,它只是不链接容器 – 因此没有前端