持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第27天,点击查看活动详情 Docker Compose安装和使用
1. compose的scale
这节课主要学习scale这个功能:
目前我们只有一个redis容器,一个web容器,但是我们可以通过scale来启动多个容器:
这里我们直接按照提示来输入指定,尝试生成3个web容器:
docker-compose up --scale web=3 -d
但是报错了:
这个失败的原因,是因为yml里面对web做了端口映射,但是如果启动3个容器,是没办法把各自端口都映射到同一个端口8080上的,这里我们先删除ports字段,然后启动:
2. 扩展和负载均衡
这里我们来了解一下一种较为理想的网络部署和访问模式
HAProxy充当负载均衡器,可以把外界的访问流量转发到任意一个web容器上,同时任意一个web容器都对接redis容器,这样部署web服务将来的扩展性也会很强,例如将来发现流量暴增,传统做法是加机器,现在通过compose我们可以很快把web容器扩展到10个。
3. 实例
本节课实例使用了haproxy,但是原理这里不阐述了,有需要的可以网上自己找一下:
这里web容器的dockerfile露出的是80端口,并通过loadbanlance是把自身80映射到本地的8080.
这里我们直接进到对应目录下,执行:
docker-compose up -d
然后我们通过scale扩展容器:
docker-compose up --scale web=3 -d
我们发现对服务的访问是通过负载均衡对对应的web容器进行请求,轮询了~
当然也可以减少容器,节约资源:
目前的docker-compose的scale只能限制在一台资源上面,能不能多机进行呢?这个就需要后面讲解的docker swarm--集群上面操作了~