互联网服务docker haproxy keepa

haproxy,keepalived如何在Docker容器中运行

今天,我在容器中安装了Haproxy和Keepalived,但发现创建后台容器时,发现起不来。
docker run -d --name testhaproxy badboy/haproxy:v1 /usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg -D
这个起不来

docker run -d --name testssh badboy/haproxy:v1 /usr/sbin/sshd -D 启动这个ssh服务就正常

想咨询下,启动haproxy不能用/usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg -D 这个命令吗?
但我在testssh这个运行的容器里执行上面的命令,就能正常,折腾几个小时了,请帮忙!
还有keepalived

谢谢!
参与9

6同行回答

linux_zcylinux_zcy技术总监希云cSphere
cat > /etc/supervisor.conf.d/haproxy.conf 显示全部
cat > /etc/supervisor.conf.d/haproxy.conf <[program:haproxy]
directory=/
command=/usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg
user=root
autostart=true
autorestart=true
stdout_logfile=/var/log/supervisor/%(program_name)s.log
stderr_logfile=/var/log/supervisor/%(program_name)s.log
EOF

logfile你自己定收起
互联网服务 · 2015-09-16
浏览3947
hahazhuhahazhu系统工程师世纪天成
回复 3# linux_zcy 试了,还是不行。[root@docker ~]# docker imagesREPOSITORY          TAG                 IMAGE ID           &nbs...显示全部
回复 3# linux_zcy
试了,还是不行。
[root@docker ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
badboy/haproxy      v2                  e7be563bfc38        15 seconds ago      374.2 MB
[root@docker ~]# docker run -d --name testhaproxy2 badboy/haproxy:v2
d02596e6cd9d9420a860973b65521239e975a675616bdc9a09de4432af2e325b
Usage of loopback devices is strongly discouraged for production use. Either use `--storage-opt dm.thinpooldev` or use `--storage-opt dm.no_warn_on_loop_devices=true` to suppress this warning.
[root@docker ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS                      PORTS               NAMES
d02596e6cd9d        badboy/haproxy:v2   "/usr/sbin/haproxy -   4 seconds ago       Exited (0) 2 seconds ago                        testhaproxy2   

哎,什么问题呢。收起
互联网服务 · 2015-09-15
浏览12596
hahazhuhahazhu系统工程师世纪天成
回复 3# linux_zcy 尝试这种方式,我现在将Dockefile文件改成如下:#run supervisor#CMD ['/usr/bin/supervisord','-c','/etc/supervisord.conf']CMD ["/usr/sbin/haproxy", "-f",  "/etc/haproxy/haproxy.cfg", "-D"]再试,等结果显示全部
回复 3# linux_zcy

尝试这种方式,我现在将Dockefile文件改成如下:
#run supervisor
#CMD ['/usr/bin/supervisord','-c','/etc/supervisord.conf']
CMD ["/usr/sbin/haproxy", "-f",  "/etc/haproxy/haproxy.cfg", "-D"]

再试,等结果收起
互联网服务 · 2015-09-15
浏览3656
hahazhuhahazhu系统工程师世纪天成
回复 2# dl528888 我Dockerfile里的文件就这样写的#run supervisorCMD ['/usr/bin/supervisord','-c','/etc/supervisord.conf'][root@docker haproxy_httpd]# more supervisord.conf [supervisord]nodaemon=true[program:sshd]command=/usr/sbin/sshd -D[program:haprox...显示全部
回复 2# dl528888

我Dockerfile里的文件就这样写的
#run supervisor
CMD ['/usr/bin/supervisord','-c','/etc/supervisord.conf']

[root@docker haproxy_httpd]# more supervisord.conf
[supervisord]
nodaemon=true

[program:sshd]
command=/usr/sbin/sshd -D

[program:haproxy]
command=/usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg -D

[program:keepalived]
command=/usr/sbin/keepalived -f /etc/keepalived/keepalived.conf

这样也启动不起来.收起
互联网服务 · 2015-09-15
浏览3705
linux_zcylinux_zcy技术总监希云cSphere
CMD ["/usr/sbin/haproxy", "-f",  "/etc/haproxy/haproxy.cfg", "-D"]显示全部
CMD ["/usr/sbin/haproxy", "-f",  "/etc/haproxy/haproxy.cfg", "-D"]收起
互联网服务 · 2015-09-15
浏览3676
dl528888dl528888系统运维工程师游戏公司
启动服务的话,可以使用supervisord,比如我想使用supervisor启动ssh与cron服务,可以使用14:11:58 # cat /etc/supervisord.conf [supervisord] nodaemon=true pidfile=/var/log/supervisord/supervisord.pid logfile=/var/log/supervisord/supervisord.log [program:sshd] command=...显示全部
启动服务的话,可以使用supervisord,比如我想使用supervisor启动ssh与cron服务,可以使用
14:11:58 # cat /etc/supervisord.conf
[supervisord]
nodaemon=true
pidfile=/var/log/supervisord/supervisord.pid
logfile=/var/log/supervisord/supervisord.log
[program:sshd]
command=/usr/sbin/sshd -D
autostart=true
autorestart=true
redirect_stderr=true
stdout_logfile=/var/log/supervisord/sshd_stdout.log
stderr_logfile=/var/log/supervisord/sshd_stderr.log
[program:crond]
command=/etc/init.d/crond start
autostart=true
autorestart=true
redirect_stderr=true
stdout_logfile=/var/log/supervisord/crond_stdout.log
stderr_logfile=/var/log/supervisord/crond_stderr.log
收起
互联网服务 · 2015-09-15
浏览5294

提问者

hahazhu
系统工程师世纪天成
擅长领域: Docker容器引擎云计算

问题来自

问题状态

  • 发布时间:2015-09-15
  • 关注会员:1 人
  • 问题浏览:21221
  • 最近回答:2015-09-16
  • X社区推广