1
我有一个应用程序,比如api,在ec2上作为docker容器运行。 由于这个容器依赖于ec2主机(端口映射),我无法在同一台机器上运行多个实例。One App - >在单个Ec2上运行多个Docker实例
我想实现一个状态,我有5个主机,它们都是一个elb,我应该能够在所有这些主机中运行多于一个容器的实例。
我知道我可以使用ECS来实现这个状态。
我可以使用Ec2,ELB和Docker吗?
-Thanks
我有一个应用程序,比如api,在ec2上作为docker容器运行。 由于这个容器依赖于ec2主机(端口映射),我无法在同一台机器上运行多个实例。One App - >在单个Ec2上运行多个Docker实例
我想实现一个状态,我有5个主机,它们都是一个elb,我应该能够在所有这些主机中运行多于一个容器的实例。
我知道我可以使用ECS来实现这个状态。
我可以使用Ec2,ELB和Docker吗?
-Thanks
有多种方式做到这一点
使用不同的端口为每个搬运工人容器
docker run -d -p 81:80 yourimage
docker run -d -p 82:80 yourimage
docker run -d -p 83:80 yourimage
docker run -d -p 84:80 yourimage
docker run -d -p 85:80 yourimage
然后你就可以把nginx的负载均衡器上的端口80。关于http://nginx.org/en/docs/http/load_balancing.html的更多详细信息
您需要使用像下面这样的配置
http {
upstream myapp1 {
server 127.0.0.1:81;
server 127.0.0.1:82;
server 127.0.0.1:83;
server 127.0.0.1:84;
server 127.0.0.1:85;
}
server {
listen 80;
location/{
proxy_pass http://myapp1;
}
}
}
使用单个节点泊坞窗群经理
您可以设置使用以下命令
docker swarm init
然后这台机器上运行下面的命令
docker service create --name=myapp --replicase=5 -p 80:80 yourimage
单个节点泊坞窗群
这将创建5个负载均衡的容器和酒吧将它们放在端口80上。
在这两种情况下都不需要ELB。我怀疑ELB在同一主机+多端口场景下工作