我必須在不同的主機上創建大量的Docker容器(例如,每個主機上有50個容器)。這些容器都具有相同的圖像,配置等,只有每個容器的網絡地址和ID應該不同(所以基本上我想創建一個巨大的虛擬容器網絡)。 有沒有辦法做到這一點?創建多個Docker容器
我曾看過像Helios和Kubernetes這樣的技術,但他們似乎只在每個代理上部署一個容器。我想在Helios中創造許多不同的工作,然後將他們中的每一個部署到其代理商,但對我來說這似乎有點骯髒。
我必須在不同的主機上創建大量的Docker容器(例如,每個主機上有50個容器)。這些容器都具有相同的圖像,配置等,只有每個容器的網絡地址和ID應該不同(所以基本上我想創建一個巨大的虛擬容器網絡)。 有沒有辦法做到這一點?創建多個Docker容器
我曾看過像Helios和Kubernetes這樣的技術,但他們似乎只在每個代理上部署一個容器。我想在Helios中創造許多不同的工作,然後將他們中的每一個部署到其代理商,但對我來說這似乎有點骯髒。
對於Docker特定的解決方案,您可以使用Swarm和Compose。
創建3個節點的Docker Swarm集羣並將您的環境更改爲該Swarm。 (下面的假設每臺主機正在偵聽2375,這是確定的專用網絡,但你要TLS設置和切換到2376爲了更加安全。)
cat >cluster.txt <<EOF
node1:2375
node2:2375
node3:2375
EOF
docker run -d -P --restart=always --name swarm-manager \
-v ./cluster.txt:/cluster.txt \
swarm manage file:///cluster.txt
export DOCKER_HOST=$(docker port swarm-manager 2375)
定義泊塢窗內爲您服務-compose.yml,然後運行docker-compose scale my-service=150
。如果您的Swarm使用默認的傳播策略進行設置,它將根據每個主機上運行(或停止)的容器數量將它們分配到3臺主機上。
cat >docker-compose.yml <<EOF
my-app:
image: my-app
EOF
docker-compose scale my-app=150
注意的缺點比其他工具泊塢窗,撰寫出有是,直到你重新運行它,它不正確的中斷。
這正是Kubernetes非常適合的用例類型。您可以使用Replica Set。創建副本集時,您可以指定一個模板,告訴系統如何創建每個容器實例以及所需數量的副本。然後,它會在集羣中可用數量的節點中創建該數量的副本。
一個需要注意的是,默認情況下,Kubernetes將只允許您擁有~100個豆莢/節點,但是如果您需要更多,您可以使用命令行標誌來更改此數字。
Kubernetes 1.2默認允許〜100個豆莢/節點,這對您的情況應該足夠了,而無需更改標誌。 –
謝謝,更新了我的答案。 –
https://docs.docker.com/swarm/ – johnharris85