2016-03-18 14 views
1

Ben docker network create -d overlay sharednetDocker yerleşimi ağ oluşturma sırasında yarış durumu nasıl engellenir?

kullanın böylece düzgün bir TestScript.sh bir ağ var olup olmadıklarını ve ağ oluşturmak değilse zorunda yapılandırılmış konsolos ve liman işçilerinin cini ile iki makine Hosta ve HostB var. Ve bu betik hem HostA hem de HostB'de kullanılabilir. Ayrıca her makinede sadece TestScript.sh'u yalnızca A'da bulunan bir MasterScript.sh var. MasterScript.sh'u çalıştırdıktan sonra, şaşırtıcı bir sonuç görüyorum, aynı adı taşıyan iki ağ oluşturuldu! Bu tartışmalı bir docker daemon eşitleme sorunudur.

[HostA]# docker network ls 
NETWORK ID   NAME     DRIVER 
ad492bba9efa  sharednet   overlay 
ba53d4e7b739  sharednet   overlay 

[HostB]# docker network ls 
NETWORK ID   NAME     DRIVER 
ad492bba9efa  sharednet   overlay 
ba53d4e7b739  sharednet   overlay 

beklenen davranıştır ben Hosta üzerinde bir ağ testnw oluştururken, daha sonra HostB ben Nedeniyle ben MasterScript.sh değiştiremez bazı kısıtlamalar nedeniyle bu

[HostB]# docker network ls 
68994f95cd67  testnw    overlay 
[HostB]# docker network create -d overlay testnw 
Error response from daemon: network with name testnw already exists 

gibi bir şey görmek gerektiğini, ama can TestScript.sh değiştir. Yani soru şu, bu yarış koşulunu bu kısıtlama altında çözmem mümkün mü?

+0

izlenmekte olduğu; Bu bir böcek gibi görünüyor. Neden tüm sunuculardaki ağları ilk sırada kontrol ediyorsunuz? Bir ana bilgisayarda yapmak için yeterli olmaz mıydı? – morxa

+0

@morxa Her makinede, yerel docker kapsayıcılarını yöneten ve bunları uygun ağlara bağlayan 'TestScript.sh' kopyası var. Ağ orada değilse, komut dosyası sadece ağı oluşturacak ve ağa kapsayıcıyı ekleyecektir. 'TestScript.sh', doğada tamamen dağıtıldığından ve tasarım birbiriyle konuşulamadığından, HostA'daki TestScript.sh, HostB'deki TestScript.sh komutunu yayımlama komutunu verdiyse bilmiyor. Bu yüzden ağ oluşturma komutumu senkronize etmek için docker daemon güvenmek zorunda. – cookieisaac

+0

Hangi docker versiyonunu kullanıyorsunuz? – morxa

cevap

İlgili konular