亚马逊网络服务-Docker容器中的haproxy

前端之家收集整理的这篇文章主要介绍了亚马逊网络服务-Docker容器中的haproxy 前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我是docker和haproxy的新手..我尝试遵循官方docker hub repo中的示例.

所以,我有Dockerfile

  1. @H_502_8@FROM haproxy:1.5
  2. COPY haproxy.cfg /usr/local/etc/haproxy/haproxy.cfg

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

  1. @H_502_8@global
  2. # daemon
  3. maxconn 256
  4.  
  5. defaults
  6. mode http
  7. timeout connect 5000ms
  8. timeout client 50000ms
  9. timeout server 50000ms
  10.  
  11. frontend http-in
  12. bind *:80
  13. default_backend servers
  14.  
  15. backend servers
  16. server server1 {my-app}.elasticbeanstalk.com:80 maxconn 32

构建并运行

  1. @H_502_8@$docker build .
  2. $docker run --rm d4598bcc293f

容器启动并卡住,Ctrl C不会停止容器. “ docker kill”仅帮助.

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

  1. @H_502_8@$curl {my-app}.elasticbeanstalk.com/status
  2. {
  3. "status": "OK"
  4. }

但是本地通话失败

  1. @H_502_8@$boot2docker ip
  2. 192.168.59.104
  3.  
  4. $curl 192.168.59.104/status
  5. curl: (7) Failed to connect to 192.168.59.104 port 80: Connection refused

我想念什么或做错什么?

谢谢!

UPDATE: I’ve found the problem with calls redirections. Wrong port
number in haproxy.cfg.

But this problem still annoys me… Container starts and stucks,
Ctrl+C doen’t stop it. “docker kill” helps only.

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

除非您在调试模式下运行,否则HAProxy不会产生任何输出,因此,运行附件并不十分重要.使用docker run -d< image>可能会有更好的时间,它将与容器分离并使其在后台运行.要停止它,请使用docker kill.

猜你在找的Docker相关文章