Docker ----(十)Docker Compose部署Haproxy

1 docker compose简介

Docker Compose 属于一个“应用层”的服务,用户可以定义哪个容器组运行哪个应用,它支持动态改变应用,并在需要时扩展。

Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。

2 docker compose安装

(1) 下载docker-compose:docker-compose-Linux-x86_64-1.27.0

(2) 移动到 /usr/local/bin/

mv  docker-compose-Linux-x86_64-1.27.0   /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

3 docker-compose.yml 属性

  • Image:指定为镜像名称或镜像 ID,如果镜像在本地不存在,Compose 将会尝试拉取这个镜像
  • Build:指定 Dockerfile 所在文件夹的路径。 Compose 将会利用它自动构建这个镜像,然后使用这个镜像
  • Command:覆盖容器启动后默认执行的命令
  • Links:链接到其它服务中的容器
  • Ports:端口映射
  • Expose::暴露端口信息
  • Volumes:卷挂载路径设置

4 haproxy负载均衡的部署

mkdir /root/compose/
vim  /root/compose/docker-compose.yml
version: "3.9"
services:
  web1:
    image: nginx
    networks:
      - mynet
    volumes:
      - ./web1:/usr/share/nginx/html
  
  web2:
    image: nginx
    networks:
      - mynet
    volumes:
      - ./web2:/usr/share/nginx/html

  haproxy:
    image: haproxy
    networks:
      - mynet
    ports:
      - "80:80"
    volumes:
      - ./haproxy/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg

networks:
  mynet:
mkdir /root/compose/web1
echo web1 > web1/index.html ##web1的访问页面
mkdir /root/compose/web2
echo web2 > web2/index.html ##web2的访问页面
mkdir /root/compose/haproxy
cd /root/compose/haproxy
vim haproxy.cfg ##编辑haproxy的配置文件
global
        maxconn         65535
        stats socket    /var/run/haproxy.stat mode 600 level admin
        log             127.0.0.1 local0
        uid             200
        gid             200
        #chroot          /var/empty
        daemon

defaults
        mode            http
        log             global
        option          httplog
        option          dontlognull
        monitor-uri     /monitoruri
        maxconn         8000
        timeout client  30s
        retries         2
        option redispatch
        timeout connect 5s
        timeout server  5s
        stats uri       /status
# The public 'www' address in the DMZ
frontend public
        bind            *:80 name clear
        #bind            192.168.1.10:443 ssl crt /etc/haproxy/haproxy.pem

        #use_backend     static if { hdr_beg(host) -i img }
        #use_backend     static if { path_beg /img /css   }
        default_backend dynamic

# The static backend backend for 'Host: img', /img and /css.
backend dynamic
        balance         roundrobin
        server          app1 web1:80 check inter 1000
        server          app2 web2:80 check inter 1000
  • 构建并启动容器:
docker-compose up

在这里插入图片描述

docker-compose start ##启动容器
docker-compose ps ##列出所有容器

在这里插入图片描述

测试:haproxy负载均衡部署成功
在这里插入图片描述
在这里插入图片描述

  • 停止web1的服务:
docker-compose stop web1

在这里插入图片描述
在这里插入图片描述

  • 启动web1容器:docker-compose start web1

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值