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"

 

posted @ 2018-03-29 15:12  sunmmi  阅读(229)  评论(0)    收藏  举报