2016-06-07 223 views
0

我必須在不同的主機上創建大量的Docker容器(例如,每個主機上有50個容器)。這些容器都具有相同的圖像,配置等,只有每個容器的網絡地址和ID應該不同(所以基本上我想創建一個巨大的虛擬容器網絡)。 有沒有辦法做到這一點?創建多個Docker容器

我曾看過像Helios和Kubernetes這樣的技術,但他們似乎只在每個代理上部署一個容器。我想在Helios中創造許多不同的工作,然後將他們中的每一個部署到其代理商,但對我來說這似乎有點骯髒。

+1

https://docs.docker.com/swarm/ – johnharris85

回答

1

對於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 

注意的缺點比其他工具泊塢窗,撰寫出有是,直到你重新運行它,它不正確的中斷。

2

這正是Kubernetes非常適合的用例類型。您可以使用Replica Set。創建副本集時,您可以指定一個模板,告訴系統如何創建每個容器實例以及所需數量的副本。然後,它會在集羣中可用數量的節點中創建該數量的副本。

一個需要注意的是,默認情況下,Kubernetes將只允許您擁有~100個豆莢/節點,但是如果您需要更多,您可以使用命令行標誌來更改此數字。

+0

Kubernetes 1.2默認允許〜100個豆莢/節點,這對您的情況應該足夠了,而無需更改標誌。 –

+0

謝謝,更新了我的答案。 –