22-docker 编排工具docker-compose
1.Docker Compose 是 Docker 官方编排(Orchestration)项目之一,负责快速的部署分布式应用。
Compose 中有两个重要的概念:
-
服务 (
service):一个应用的容器,实际上可以包括若干运行相同镜像的容器实例。 -
项目 (
project):由一组关联的应用容器组成的一个完整业务单元,在docker-compose.yml文件中定义。
# 安装 wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo yum install python-pip -y pip install docker-compose # 验证 [root@docker01 ~]# docker-compose version docker-compose version 1.20.1, build 5d8c71b docker-py version: 3.1.4 CPython version: 2.7.5 OpenSSL version: OpenSSL 1.0.1e-fips 11 Feb 201
2.创建目录,编辑docker-compose文件
# 创建目录
[root@docker01 ~]# mkdir /opt/compose
[root@docker01 ~]# cd /opt/compose/
# 编辑文件
[root@docker01 compose]# vim docker-compose.yml
mage: nginx
volumes:
- /opt/compose/index1.html:/usr/share/nginx/html/index.html
expose:
- 80
web2:
image: nginx
volumes:
- /opt/compose/index2.html:/user/share/nginx/html/index.html
expose:
- 80
haproxy:
image: haproxy
volumes:
- /opt/compose/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg
links:
- web1
- web2
ports:
- "7777:1080"
- "80:80"
3.创建docker-compose所需的文件
# 加入文件
[root@docker01 compose]# echo "this is node01" > index1.html
[root@docker01 compose]# echo "this is node02" > index2.html
[root@docker01 compose]# vim haproxy.cfg
# 全局配置,日志,运行安装路径,
global
log 127.0.0.1 local3 info
maxconn 5000
#chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
defaults
log global
mode http
option httplog
option dontlognull
option forwardfor
option http-keep-alive
timeout connect 25s
timeout client 25s
timeout server 25s
timeout check 5s
frontend http_frontend
stats enable
bind 0.0.0.0:80
stats refresh 100s
stats hide-version
stats uri /haproxy-status
stats realm "HAProxy/ static"
stats auth admin:admin123
stats admin if TRUE
acl web01 hdr_beg(host) 192.168.1.23
use_backend docker_web01 if web01
backend docker_web01
mode http
balance roundrobin
timeout http-request 3s
timeout http-keep-alive 3s
timeout connect 1s
timeout server 10s
timeout check 500ms
option redispatch
option http-keep-alive
server web1 web1
server web2 web2
[root@docker01 compose]# ll
total 16
-rw-r--r-- 1 root root 409 Mar 29 12:55 docker-compose.yml
-rw-r--r-- 1 root root 2100 Mar 29 12:52 haproxy.cfg
-rw-r--r-- 1 root root 15 Mar 29 12:20 index1.html
-rw-r--r-- 1 root root 15 Mar 29 12:20 index2.html
4.启动docker-compose
# 启动方式 [root@docker01 compose]# docker-compose up -f /opt/compose/docker-compose [root@docker01 compose]# docker-compose up Recreating compose_web2_1 ... done Starting compose_web1_1 ... done Recreating compose_haproxy_1 ... done Attaching to compose_web1_1, compose_web2_1, compose_haproxy_1 web1_1 | 172.17.0.4 - - [29/Mar/2018:16:55:29 +0000] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36" "192.168.1.100" web2_1 | 172.17.0.4 - - [29/Mar/2018:16:55:29 +0000] "GET / HTTP/1.1" 200 15 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36" "192.168.1.100" web1_1 | 172.17.0.4 - - [29/Mar/2018:16:55:30 +0000] "GET / HTTP/1.1" 200 15 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36" "192.168.1.100" web2_1 | 172.17.0.4 - - [29/Mar/2018:16:55:30 +0000] "GET / HTTP/1.1" 200 15 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36" "192.168.1.100" web1_1 | 172.17.0.4 - - [29/Mar/2018:16:55:30 +0000] "GET / HTTP/1.1" 200 15 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36" "192.168.1.100" web2_1 | 172.17.0.4 - - [29/Mar/2018:16:55:30 +0000] "GET / HTTP/1.1" 200 15 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36" "192.168.1.100" web1_1 | 172.17.0.4 - - [29/Mar/2018:16:55:31 +0000] "GET / HTTP/1.1" 200 15 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36" "192.168.1.100" web2_1 | 172.17.0.4 - - [29/Mar/2018:16:55:31 +0000] "GET / HTTP/1.1" 200 15 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36" "192.168.1.100" web1_1 | 172.17.0.4 - - [29/Mar/2018:16:55:31 +0000] "GET / HTTP/1.1" 200 15 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36" "192.168.1.100" web2_1 | 172.17.0.4 - - [29/Mar/2018:16:55:31 +0000] "GET / HTTP/1.1" 200 15 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36" "192.168.1.100" web1_1 | 172.17.0.4 - - [29/Mar/2018:16:55:31 +0000] "GET / HTTP/1.1" 200 15 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36" "192.168.1.100" web2_1 | 172.17.0.4 - - [29/Mar/2018:16:55:32 +0000] "GET / HTTP/1.1" 200 15 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36" "192.168.1.100" web1_1 | 172.17.0.4 - - [29/Mar/2018:16:55:32 +0000] "GET / HTTP/1.1" 200 15 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36" "192.168.1.100" web2_1 | 172.17.0.4 - - [29/Mar/2018:16:55:32 +0000] "GET / HTTP/1.1" 200 15 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36" "192.168.1.100" web1_1 | 172.17.0.4 - - [29/Mar/2018:16:55:32 +0000] "GET / HTTP/1.1" 200 15 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36" "192.168.1.100" web2_1 | 172.17.0.4 - - [29/Mar/2018:16:55:32 +0000] "GET / HTTP/1.1" 200 15 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36" "192.168.1.100" web1_1 | 172.17.0.4 - - [29/Mar/2018:16:55:33 +0000] "GET / HTTP/1.1" 200 15 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36" "192.168.1.100" web2_1 | 172.17.0.4 - - [29/Mar/2018:16:55:33 +0000] "GET / HTTP/1.1" 200 15 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36" "192.168.1.100" web1_1 | 172.17.0.4 - - [29/Mar/2018:16:55:33 +0000] "GET / HTTP/1.1" 200 15 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36" "192.168.1.100" web2_1 | 172.17.0.4 - - [29/Mar/2018:16:55:33 +0000] "GET / HTTP/1.1" 200 15 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36" "192.168.1.100" web1_1 | 172.17.0.4 - - [29/Mar/2018:16:55:33 +0000] "GET / HTTP/1.1" 200 15 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36" "192.168.1.100" web2_1 | 172.17.0.4 - - [29/Mar/2018:16:55:34 +0000] "GET / HTTP/1.1" 200 15 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36" "192.168.1.100" web1_1 | 172.17.0.4 - - [29/Mar/2018:16:55:34 +0000] "GET / HTTP/1.1" 200 15 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36" "192.168.1.100" web2_1 | 172.17.0.4 - - [29/Mar/2018:16:55:34 +0000] "GET / HTTP/1.1" 200 15 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36" "192.168.1.100" web1_1 | 172.17.0.4 - - [29/Mar/2018:16:55:34 +0000] "GET / HTTP/1.1" 200 15 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36" "192.168.1.100" web2_1 | 172.17.0.4 - - [29/Mar/2018:16:55:34 +0000] "GET / HTTP/1.1" 200 15 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36" "192.168.1.100"

浙公网安备 33010602011771号