Compose 是 Docker 容器进行编排的工具,定义和运行多容器的应用,能够一条命令启动多个容器,使用Docker Compose再也不须要使用shell脚原本启动容器。 html
Compose 经过一个配置文件来管理多个Docker容器,在配置文件中,全部的容器经过services来定义,而后使用docker-compose脚原本启动,中止和重启应用,和应用中的服务以及全部依赖服务的容器,很是适合组合使用多个容器进行开发的场景。nginx
docker-compose默认的模板文件是 docker-compose.yml,其中定义的每一个服务都必须经过 image 指令指定镜像或 build 指令(须要 Dockerfile)来自动构建。web
其它大部分指令都跟 docker run 中的相似。docker
若是使用 build 指令,在 Dockerfile 中设置的选项(例如:CMD, EXPOSE, VOLUME, ENV 等) 将会自动被获取,无需在 docker-compose.yml 中再次设置。
使用Compose 基本上分为三步:1.Dockerfile 定义应用的运行环境 2.docker-compose.yml 定义组成应用的各服务 3.docker-compose up 启动整个应用shell
mv docker-compose-Linux-x86_64-1.22.0 /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-composevim
mkdir -p /tmp/docker/compose
cd /tmp/docker/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: haproxyapp
volumes:
- ./haproxy/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg:ro负载均衡
links:
- web1
- web2
ports:
- "80:80"
expose:
- "80"frontend
pwd
/tmp/docker/compose
mkdir web1/web2
echo web1 > web1/index.html
echo web2 > web2/index.html
pwd
/tmp/docker/compose
mkdir haproxy
cd 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
docker load -i nginx.tar
docker load -i haproxy.tar
cd -
/tmp/docker/compose/haproxy
docker-compose up -d
Creating compose_web1_1 ... done
Creating compose_web2_1 ... done
Creating compose_haproxy_1 ... done
docker-compose logs ##能够查看日志记录
Attaching to compose_haproxy_1, compose_web2_1, compose_web1_1
haproxy_1 | <7>haproxy-systemd-wrapper: executing /usr/local/sbin/haproxy -p /run/haproxy.pid -f /usr/local/etc/haproxy/haproxy.cfg -Ds