Linux, WEB, 应用部署

docker-compose创建1个haproxy和3个web容器,实现负载均衡

1.创建一个工程目录haproxy
[root@wen ~]# mkdir haproxypro
[root@wen ~]# cd haproxypro/
2.下载haproxy镜像
[root@wen haproxypro]# docker pull haproxy:2.0.29-alpine
3.基于基础镜像制作web应用镜像
[root@wen haproxypro]# cat Dockerfile
FROM centos
RUN rm /etc/yum.repos.d/* && yum clean all
ADD CentOS8-Base.repo /etc/yum.repos.d/
RUN yum -y install httpd
ADD index.html /var/www/html/
CMD /usr/sbin/httpd -D FOREGROUND
[root@wen haproxypro]# echo "httpd v11111"  >index.html
[root@wen haproxypro]# docker build -t centos-httpd:v1 .
4.准备haproxy.cfg配置文件
[root@wen haproxypro~]# cat haproxy.cfg 
global
log 127.0.0.1 local0 info 
maxconn 256
chroot /usr/local/etc/haproxy
uid 1000
gid 1000
daemon
defaults
mode http
timeout connect 1500ms
timeout client 5000ms
timeout server 5000ms
option httpclose
option dontlognull
option forwardfor
option redispatch
option abortonclose
frontend http-in
bind *:80
log global
default_backend servers
backend servers
option httpchk GET /index.html
balance roundrobin
server server1 weba:80 check inter 2000 rise 2 fall 2 
server server2 webb:80 check inter 2000 rise 2 fall 2 
server server3 webc:80 check inter 2000 rise 2 fall 2 
listen stats
mode http
bind 0.0.0.0:9999
stats enable
log global
stats uri /status
stats auth haadmin:qm123com

5.创建docker-compose.yml编排文件
[root@wen haproxypro]# vi docker-compose.yml
services:
 weba:
  image: centos-httpd:v1
 webb:
  image: centos-httpd:v1
 webc:
  image: centos-httpd:v1
 haproxy:
  image: haproxy:2.0.29-alpine
  volumes:
    - ./haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg
  links:
    - weba
    - webb
    - webc
  ports:
    - "80:80"
    - "9999:9999"

6.启动应用
[root@wen haproxypro]# docker-compose up
7.验证容器是否全部启动

8.验证负载均衡

Leave a Reply