docker-compose 管理多个容器
设置docker-compose命令
[root@server1 ~]# mv docker-compose-Linux-x86_64-1.22.0 /usr/local/bin/
[root@server1 ~]# cd /usr/local/bin/
[root@server1 bin]# ln -s docker-compose-Linux-x86_64-1.22.0 docker-compose
[root@server1 bin]# chmod +x docker-compose-Linux-x86_64-1.22.0
[root@server1 bin]# ll
total 53944
-rwxr-xr-x 1 root root 20416312 May 26 16:47 convoy
-rwxr-xr-x 1 root root 23068627 May 26 16:47 convoy-pdata_tools
lrwxrwxrwx 1 root root 34 Jun 1 11:48 docker-compose -> docker-compose-Linux-x86_64-1.22.0
-rw-r--r-- 1 root root 11750136 Jun 1 11:48 docker-compose-Linux-x86_64-1.22.0
设置compose管理文件
[root@server1 ~]# docker inspect haproxy
"Cmd": [
"haproxy",
"-f",
"/usr/local/etc/haproxy/haproxy.cfg"
],
[root@server1 ~]# mkdir /mnt/compose
[root@server1 ~]# cd /mnt/compose/
[root@server1 compose]# vim docker-compose.yml
web1:
image: nginx
expose:
- 80
volumes:
- ./web1:/usr/share/nginx/html
web2:
image: nginx
expose:
- 80
volumes:
- ./web2:/usr/share/nginx/html
haproxy:
image: haproxy
volumes:
- ./haproxy/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg:ro
links:
- web1
- web2
ports:
- "80:80"
expose:
- 80
[root@server1 compose]# mkdir web1
[root@server1 compose]# mkdir web2
[root@server1 compose]# echo web1 > web1/index.html
[root@server1 compose]# echo web2 > web2/index.html
[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
# 启动
[root@server1 haproxy]# docker-compose up -d
Creating compose_web2_1 ... done
Creating compose_web1_1 ... done
Creating compose_haproxy_1 ... done
在浏览器上访问172.25.24.1
[root@server1 haproxy]# docker stop compose_web1_1
compose_web1_1
[root@server1 haproxy]# docker start compose_web1_1
compose_web1_1