您的位置:首页 > 运维架构 > Docker

docker compose 应用案例 web负载均衡

2017-11-04 20:36 806 查看

安装docker-compose

这种方式是将Compose当做一个Python应用从pip源中安装, 其他安装方式可以自行百度。

sudo pip3 install -U docker-compose


安装完成后,可以查看docker-compose的用法:

docker-compose -h




新建工作目录

本文将haproxy_web作为案例演示的工作目录。

整体文件结构如下:



docker-compose.yml 是docker-compose的配置文件,用于编排容器群。

haproxy目录下的haproxy.cfg 是haproxy负载均衡器的配置文件

web目录下是用来制作web应用容器的目录。

Dockerfile是镜像制作的文件

static views conf是web项目的静态资源, myserver是改名后的应用程序。 web目录下的之后要挂在进centos:latest容器内。

制作web应用容器

因为之前使用过golang语言的beego框架, 这里为了方便就直接使用beego框架的案例了。

在beego项目的目录下执行:

go build main.go




绿色的main就是这个web项目的可执行文件, 值得注意的是本机使用的是ubuntu 64位,要使用的web服务器是centos 64位, 所以这里build就缺省了相应的构建参数。

将这个 main可执行文件 conf目录 static目录 views目录 拷贝到工作目录下的web目录下 main文件改名为myserver. 将 conf目录下的配置文件端口8080改成80端口。

web目录下结构如下:



编辑Dockerfile文件:

vim Dockerfile


文件内容如下:

FROM centos:latest
WORKDIR /web-server
ADD . /web-server
EXPOSE 8080
RUN chmod 755 myserver
CMD ./myserver


这里可以使用
docker build -t myserver:1.0 .
命令来构建镜像,
docker run -p 80:80 -d myserver:1.0
运行镜像, 来测试Dockerfile文件是否正确配置。

负载均衡配置

编辑负载均衡的配置文件:

vim haproxy.cfg


文件内容如下:

global
log 127.0.0.1 local0
log 127.0.0.1 local1 notice
maxconn 4096

defaults
log global
mode http
option httplog
option dontlognull
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms

listen stats
bind 0.0.0.0:70
mode http
stats enable
stats hide-version
stats scope .
stats realm Haproxy\ Statistics
stats uri /
stats auth user:pass

frontend balancer
bind 0.0.0.0:80
mode http
default_backend web_backends

backend web_backends
mode http
option forwardfor
balance roundrobin
server weba weba:80 check
server webb webb:80 check
server webc webc:80 check
option httpchk GET /
http-check expect status 200


docker-compose配置

编辑docker-compose配置文件docker-compose.yml:

vim docker-compose.yml


内容如下:

weba:
build: ./web
expose:
- 80

webb:
build: ./web
expose:
- 80

webc:
build: ./web
expose:
- 80

haproxy:
image: haproxy:1.6
volumes:
- ./haproxy:/haproxy-override
- ./haproxy/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg:ro
links:
- weba
- webb
- webc
ports:
- "80:80"
- "70:70"


在工作目录下运行:

docker-compose up --build


运行结果如下:





注意:

为了加速构建速度, 在之前应该拉去相应的镜像:

docker pull centos:latest
docker pull haproxy:1.6
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  负载均衡