haproxy在docker容器中

时间:2015-04-18 23:23:31

标签: amazon-web-services docker haproxy

我是docker和haproxy的新手。我试图效仿官方docker hub repo中的例子。

所以,我有Dockerfile

FROM haproxy:1.5
COPY haproxy.cfg /usr/local/etc/haproxy/haproxy.cfg

和简单的haproxy配置(我希望将本地调用重定向到我的EB实例)

global
  # daemon
  maxconn 256

defaults
  mode http
  timeout connect 5000ms
  timeout client 50000ms
  timeout server 50000ms

frontend http-in
  bind *:80
  default_backend servers

backend servers
  server server1 {my-app}.elasticbeanstalk.com:80 maxconn 32

构建并运行

$ docker build .
$ docker run --rm d4598bcc293f 

容器启动和卡住,Ctrl + C不会阻止它。 “docker kill”只有帮助。

我的EB资源已启动并正在运行

$ curl {my-app}.elasticbeanstalk.com/status
{
  "status": "OK"
}

但本地电话失败

$ boot2docker ip
192.168.59.104

$ curl 192.168.59.104/status
curl: (7) Failed to connect to 192.168.59.104 port 80: Connection refused

我错过了什么或做错了什么?

谢谢!

  

更新:我发现调用重定向有问题。错误的港口   haproxy.cfg中的数字。

     

但是这个问题仍然让我感到烦恼......集装箱启动和卡住,   Ctrl + C不要阻止它。 “docker kill”只有帮助。

1 个答案:

答案 0 :(得分:3)

如果您希望能够使用control-c退出,请执行docker run -i <image>-i表示将输入传递给容器化程序,如果HAProxy获得control-c,则它将终止,这将停止容器。

除非你在调试模式下运行它,否则HAProxy不会产生任何输出,所以没有太多关于运行附加的信号。使用docker run -d <image>可能会有更好的时间,它将从容器中分离并让它在后台运行。要停止它,请使用docker kill