我有一个应用程序,比如api,在ec2上作为docker容器运行。 由于此容器依赖于ec2主机(端口映射),因此无法在同一台计算机上运行多个实例。
我想实现一个状态,其中我有5个主机,它们都是elb,我应该可以在所有这些主机中运行多个容器实例。
我知道我可以使用ECS实现这种状态。
我能用Ec2,ELB和Docker做到这一点吗?
-Thanks
答案 0 :(得分:0)
有多种方法可以做到这一点
为每个泊坞窗容器使用不同的端口
objArray
然后你可以在端口80上放置一个nginx负载均衡器。详见http://nginx.org/en/docs/http/load_balancing.html
您需要使用下面的配置
var someObject = {
"Name1": {
"key1": "value1",
},
"Name2": {
"key1": "value2",
}
}
var objArray = [];
for(var i in someObject){
var key1 = someObject[i];
for(var x in key1){
objArray.push({'key' : x, 'val' : key1[x]});
}
}
var optionSelect = document.getElementById("optSelect"),
selectList = document.createElement("select");
selectList.id = "mySelect";
optionSelect.appendChild(selectList);
for (var i = 0; i < objArray.length; i++) {
var option = document.createElement("option");
option.value = objArray[i].key; // need to get key1 in here for each value in someObject
option.text = objArray[i].val; // need to get value 1 or 2 etc in here for each value name in someObject
optionSelect.appendChild(option);
}
使用单节点泊坞窗群管理器
您可以使用以下命令
设置单节点泊坞窗群<select id="optSelect">
</select>
然后在该机器上运行以下命令
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
这将创建5个负载平衡容器并在端口80上发布它们。
两种情况都不需要ELB。我怀疑ELB在相同的主机+多端口场景下工作