部署如下:
1.添加docker-compose环境变量
[root@server1 ~]# ls
docker-compose-Linux-x86_64-1.22.0
[root@server1 ~]# mv docker-compose-Linux-x86_64-1.22.0 /usr/local/bin/
[root@server1 ~]# cd /usr/local/bin/
[root@server1 bin]# chmod +x docker-compose-Linux-x86_64-1.22.0
[root@server1 bin]# ln -s docker-compose-Linux-x86_64-1.22.0 docker-compose
2.下载haproxy,nginx镜像并且将其导入本地
[root@server1 ~]# docker load -i haproxy.tar
[root@server1 ~]# docker load -i nginx.tar
3.建立/mnt/compose目录编写docker-compose.yml添加负载调度策略
[root@server1 ~]# mkdir -p /mnt/compose
[root@server1 ~]# cd /mnt/compose/
[root@server1 compose]# vim docker-compose.yml
文件编辑内容如下:
//网页web1及其相应的挂载点及其暴露端口
web1:
image: nginx
expose:
- 80
volumes:
- ./web1:/usr/share/nginx/html
//web2同web1
web2:
image: nginx
expose:
- 80
volumes:
- ./web2:/usr/share/nginx/html
//添加haproxy
haproxy:
image: haproxy
volumes:
- ./haproxy/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg:ro
links:
- web1
- web2
ports:
- "80:80"
expose:
- 80
4.在当前目录下建立web1及其web2目录并且添加轮询调度的web1及其web2界面的相应内容
5.在当前目录下建立haproxy的目录并且添加haproxy的配置文件
[root@server1 compose]# pwd
/mnt/compose
[root@server1 compose]# mkdir haproxy
[root@server1 compose]# cd haproxy/
[root@server1 haproxy]# vim haproxy.cfg
文件编辑内容如下:
global
log 127.0.0.1 local0
log 127.0.0.1 local1 notice
defaults
log global
mode http
option httplog
option dontlognull
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
stats uri /status
frontend balancer
bind 0.0.0.0:80
default_backend web_backends
backend web_backends
balance roundrobin
server server1 web1:80 check
server server2 web2:80 check
6.在/mnt/compose目录下开启docker-compose并且检查文件是否有问题
7.查看docker-compose下生成的镜像
8.在浏览器测试
http://172.25.254.1/
//发现web1和web2之间是轮询的
//查看网页状态:
//停止compose_web1_1 容器
//再次刷新网页状态发现显示server1为红色
//在网页查看发现只能看到server2上的内容
//再次开启容器发现server1的状态变为运行