如何负载均衡运行简单Web应用程序的Docker容器?
我有3个Web容器在单个主机上运行。如何负载均衡我的Web容器?
我有3个Web容器在单个主机上运行。如何负载均衡我的Web容器?
将负载均衡器(如haproxy或nginx)放置在主机上,甚至可以完成工作。
无论哪种方式,都将负载均衡器放置在主机上或放置在可以访问容器中公开端口的不同服务器上。对于您的需求,Nginx可能会更简单。
设置基本的nginx负载平衡:
http {
upstream myapp1 {
server CONTAINER_APP0_IP:PORT;
server CONTAINER_APP1_IP:PORT;
server CONTAINER_APP2_IP:PORT;
}
server {
listen 80;
location / {
proxy_pass http://myapp1;
}
}
}
docker run
命令的修饰符来为容器分配更多或更少的 CPU 和内存,详情请见 https://docs.docker.com/reference/commandline/cli/#run。关于 CPU,你可以使用-c,--cpu-shares=0
来设置 CPU 的权重比例;而关于内存,则可以使用-m,--memory=""
来限制内存的使用(格式为 <number><optional unit>,其中 unit 可以为 b、k、m 或 g)。 - user2915097