微服务架构的应用系统一般包含若干个微服务,每个微服务一般都会部署多个实例,如果每个微服务都要手动启停,那么效率之低,维护量之大可想而知。
Docker Compose是一种编排服务,基于python语言实现,是一个用于在Docker上定义并运行复杂应用的工具,可以让用户在集群中部署分布式应用;
用户可以容易地用一个配置文件定义一个多容器的应用,然后使用一条指令安装这个应用的所有依赖,完成构建。
解决了容器与容器之间如何管理编排的问题。
Docker Compose 中有两个重要的概念:
服务(service):一个应用的容器,实际上可以包括若干运行相同镜像的容器实例。项目(project):由一组关联的应用容器组成的一个完整业务单元,在docker-compose.yml文件中定义。实验过程:
步骤一:将docker-compose的包放置到/usr/local/bin目录下,给其增加执行权限 步骤二:创建并编辑docker-compose.yml文件,创建默认访问的页面(web1和web2) mkdir compose touch docker-compose.yml vim docker-compose.yml mkdir haproxy yum install haproxy -y cd compose/haproxy cp /etc/haproxy/haproxy.cfg . mkdir web{1,2} echo we1>web1/index.html echo we2>web2/index.html步骤三:编辑haproxy的配置文件,启动docker-compose cd compose/haproxy vim haproxy.cfg cd compose docker-compose up docker-compose start docker-compose ps
步骤四:在classroom上进行对server1的访问测试
步骤五:为后端服务器创建共享目录 docker-compose stop vim docker-compose.yml #给后端的web1和web2搭建一个共享的目录webdata docker-compose up -d #启动docker-compose,-d表示打入后台 docker-compose ps
步骤六:测试 curl 192.168.43.101 #在classroom上访问
docker inspect compose_web1_1 cd /var/lib/docker/volumes/compose_webdata/_data vim test.html
最后测试一下它的健康检查功能 docker-compose ps docker stop compose_web1_1 #停掉web1 curl 192.168.43.101 #在classroom上进行访问 docker start compose_web1_1 docker-compose ps
总结:上述实验中,我们将应用以容器化的方式来进行管理,实现了单机+docker完成了应用的部署,而我们常规的利用非docker环境来做这个实验,至少需要3台虚拟机。所以容器是十分方便并且快捷的一种工具。