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
相关文章推荐
- Docker Compose—简化复杂容器应用的利器
- 基于docker-compose的多应用部署
- Docker Compose—简化复杂应用的利器
- .NET Core容器化之多容器应用部署@Docker-Compose
- Docker容器案例:应用 Mysql
- Docker Compose—简化复杂容器应用的利器
- Docker之Docker Compose简化复杂容器应用的利器
- docker compose的应用
- Docker学习笔记4: Docker-Compose—简化复杂容器应用的利器
- Spring boot 与 Docker-compose构建微服务应用(2)
- Docker学习笔记4: Docker-Compose—简化复杂容器应用的利器
- .NET Core容器化之多容器应用部署-使用Docker-Compose
- Spring boot 与 Docker-compose构建微服务应用
- Docker Compose—简化复杂容器应用的利器
- Docker应用编排:Compose入门(待续)
- .NET Core容器化之多容器应用部署@Docker-Compose
- 案例:双代号网络图在控制工程造价中的应用
- PHP绿色集成环境在云服务器上的应用,PHPWAMP在服务器上搭建网站案例
- 人工智能案例:车厂特斯拉的花式AI应用...
- WCF简单案例和WCF应用的通信过程