Docker镜像制作:haproxy
# cd /opt/dockerfile/web/
# ls
apache jdk nginx tomcat
# mkdir haproxy
# cd haproxy/
添加配置文件haproxy.cfg
修改配置文件haproxy.cfg
# vim haproxy.cfg
global maxconn 100000 chroot /usr/local/haproxy #stats socket /var/lib/haproxy/haproxy.sock mode 600 level admin uid 99 gid 99 daemon #nbproc 2 #cpu-map 1 0 #cpu-map 2 1 pidfile /usr/local/haproxy/run/haproxy.pid log 127.0.0.1 local3 info defaults option http-keep-alive option forwardfor maxconn 100000 mode http timeout connect 300000ms timeout client 300000ms timeout server 300000ms listen stats mode http bind 0.0.0.0:9999 stats enable log global stats uri /haproxy-status stats auth haadmin:123456 listen web_port bind 0.0.0.0:80 mode http log global server web1 192.168.7.102:8801 check inter 3000 fall 2 rise 5 server web2 192.168.7.103:8801 check inter 3000 fall 2 rise 5
编写启动脚本
# vim run_haproxy.sh
#!/bin/bash haproxy -f /etc/haproxy/haproxy.cfg tail -f /etc/hosts
添加执行权限
# chmod a+x run_haproxy.sh
编辑dockerfile
# vim Dockerfile
FROM centos-base:v1 MAINTAINER zhangshijie 2973707860@qq.com ADD haproxy-1.8.17.tar.gz /usr/local/src RUN yum install systemd-devel -y && cd /usr/local/src/haproxy-1.8.17 && make ARCH=x86_64 TARGET=linux2628 USE_PCRE=1 USE_OPENSSL=1 USE_ZLIB=1 USE_SYSTEMD=1 USE_CPU_AFFINITY=1 PREFIX=/usr/local/haproxy && make install PREFIX=/usr/local/haproxy && cp haproxy /usr/sbin/ && mkdir /usr/local/haproxy/run ADD haproxy.cfg /etc/haproxy/haproxy.cfg ADD run_haproxy.sh /usr/bin/run_haproxy.sh #EXPOSE 80 9999 CMD ["/usr/bin/run_haproxy.sh"]
# vim build-command.sh
#!/bin/bash docker build -t centos-haproxy:v1.8.17 .
# bash build-command.sh
进入容器查看haproxy是否安装成功
# docker run -it centos-haproxy:v1.8.17 bash
[root@e6246d117927 /]# /usr/local/haproxy/sbin/haproxy -v
HA-Proxy version 1.8.17 2019/01/08 Copyright 2000-2019 Willy Tarreau <willy@haproxy.org>
运行
# docker run -it -p 80:80 -p 9999:9999 centos-haproxy:v1.8.17
测试