2016-03-16 8 views
8

Używam docker-compose 1.6 z dokowaniem 1.10.1 i wersją 2 docker-compose.yml.Jak dotrzeć do dodatkowych kontenerów według nazwy hosta po skali dokowania-komponowania?

Zgodnie z opisem w Networking in Compose, tworzona jest nowa sieć, a wszystkie pojemniki są przypisywane do niej po docker-compose up.

Jak uzyskać dostęp do dodatkowych (tj. Skalowanych) kontenerów za pośrednictwem nazw hostów po docker-compose scale <component>=2?

+0

Odpowiedział na http://stackoverflow.com/a/39895650/3423324 – luckydonald

Odpowiedz

3

podstawie przykładów widziałem, przyjmując imię i nazwisko pojemnik jest db, przeskalowane pojemniki mają imiona db_1, db_2, itp ...

+1

Jak będzie, że praca z narzędziem jak nginx gdzie config jest predefiniowane? Czy będę musiał użyć zdarzeń Dockera, aby wyszukać nowe hosty i zaktualizować listę backendów? (podobnie jak działa blokada) – tpbowden

+0

Próbowałem użyć nazw kontenerów, ale wygląda na to, że nie są one zapełnione DNSem –

+0

@tpbowden Jednym ze sposobów jest edycja konfiguracji nginx i ponowne uruchomienie nginx po dodaniu dodatkowych kontenerów. Automatyczne skalowanie modułu równoważenia obciążenia jest możliwe w przypadku projektów takich jak https://github.com/docker/dockercloud-haproxy, ale wygląda na to, że działają w ten sposób, łącząc gniazdo demona dokowania z kontenerem. – bonh

0

Przy użyciu „Scale”, wewnętrzna usługa dns doker rozwiązuje tylko pełne nazwy, takie jak projectname_db_1, projectname_db_2 i tak dalej. Z pewnością lepiej byłoby podać dodatkowo nazwę usługi + indeks bez prefiksu nazwy projektu.

-1

Mam answered to pytanie na podstawie python z api docker.

Zasadniczo można użyć wartości docker api, aby dowiedzieć się, jaka jest nazwa projektu i nazwa usługi.

Następnie można filtrować wszystkie dostępne pojemniki dla tego samego project + service, aby uzyskać inne wystąpienia użytkownika.

Po wyszukaniu liczb można w końcu skonstruować nazwy hostów.

Zobacz How to get infos about ourself in a compose cluster (backup at gist.github.com)