2017-05-09 18 views
6

Z tego, co przeczytałem, wynika, że ​​Docker-Compose to narzędzie do tworzenia wielu kontenerów na jednym hoście, podczas gdy Docker Swarm to narzędzie, które może zrobić dokładnie to samo, ale z większą kontrolą i na wielu hostach za pomocą Docker Stack . Przeszedłem tutorial, a także natknąłem tym wątku:Jakie korzyści ma Docker Compose w stosunku do Docker Swarm i Docker Stack?

docker-compose.yml vs docker-stack.yml what difference?

I wracam do wniosku, że nie ma powodu, aby kiedykolwiek użyć Docker-Compose, kiedy można użyć Docker Swarm z Docker stos. Mogą nawet używać tego samego pliku docker-compose.yml.

Wygląda na to, że Docker-compose pojawił się przed rojem i stosem, a być może nowe rozwiązanie roju + stosu sprawia, że ​​kompozycja staje się przestarzała, ale nadal pozostaje ze względów starszych. Czy to myślenie jest poprawne? Jeśli nie, jakie korzyści ma Docker-Compose w stosunku do Docker Swarm i Docker Stack pod względem tworzenia środowiska produkcyjnego lub produkcyjnego?

+0

Jeśli pracujesz z więcej niż „zabawkę” lub próbki pojemników, a następnie znajdziesz kompozycję o niższej wadze (szybsze czasy uruchamiania) i wymaga mniej pamięci niż Stack. Oczywiście jest to również osobna instalacja, która, moim zdaniem, jest oparta na pythonie. Gdy tylko było to możliwe, korzystałbym ze Stack - jest on wbudowany, prawdopodobnie uzyska lepsze wsparcie i nowsze funkcje. – JoeG

Odpowiedz

5

Wydaje się, że Docker-komponować przyszedł przed roju i stosu i być może nowe rozwiązanie rój + stosu sprawia komponować przestarzały, ale nadal ze względów starszych. Czy to myślenie jest poprawne?

Krótko mówiąc, tak. Compose pojawił się przed wszystkimi materiałami Swarm (powstał jako narzędzie innej firmy o nazwie fig). Co gorsza, istnieją jeszcze dwa różne roje, stary rój (ten, który był oddzielnym narzędziem) i tryb roju (który jest wbudowany w binarne pliki docker).

Wygląda na to, że ewoluuje w koncepcje usług i wdrażania, które wbudowano w Docker. Ale zgaduję, że Docker Compose i materiały do ​​wdrażania w trybie Swarm będą przez jakiś czas żyły ramię w ramię.

Jest to także korzystne wiedzieć, że Podbudow Docker Compose żyć jak biblioteka nazywa libcompose (https://github.com/docker/libcompose), które inne media 3rd party wykorzystać do obsługi formatu docker-compose.yml plików do wdrażania (patrz Rancher i rancher-compose jako przykład). Wyobrażam sobie, że postarają się kontynuować wsparcie dla libcompose.

Nie jestem pewien, czy rzeczy rozmieszczone w Docker Swarm rzeczywiście używają libcompose. W moich pobieżnych poszukiwaniach okazało się, że tryb Swarm działa , a nie implementuje libcompose i działa samodzielnie. Nie jestem pewien, jak to się ma do przyszłości Docker Compose i libcompose. Interpretować zgodnie z potrzebami ...

+0

Istnieje kilka kluczy, które nie są jeszcze obsługiwane w 'docker stack deploy -c', szczególnie' build', więc musisz wstępnie zbudować obrazy. A "wdrożenie stosu doków" wymaga wprowadzenia roju, nawet jeśli jest to tylko węzeł lokalny. To powiedziawszy, 'stos kontenerów deploy -c' używa składni plików komponujących obsługuje prawie wszystko, plus obsługuje klucz' deploy'. –

3

Z tego co znalazłem: What's the difference between Docker Swarm, Docker Compose and Docker Newtorks?

Docker Compose to narzędzie po stronie klienta, który pozwala na uruchamianie aplikacji stos z wielu komponentów

So w naszym scenariuszu używałbyś Docker Compose do osiągnięcia. Zdefiniujesz plik spec, w którym zdefiniujesz sposób budowania kontenera dla każdego komponentu - bazy danych, aplikacji i warstwy internetowej. Możesz także określić, w jaki sposób będą ze sobą współdziałać. Ile instancji każdej i wielu innych rzeczy.


Tworzenie jest narzędziem do definiowania i uruchamiania aplikacji Docker z wieloma kontenerami.

Docker Swarm jest serwerem cechy niepożądane, które umożliwia:

  • Rój jest klaster węzłów Döcker (maszyny), które działają jako bazowych zasobów do uruchamiania wielu pojemnik. Można organizować i wdrażać usługi w całym roju.

Można łączyć wiele węzłów w klastrze, a następnie wysłać polecenie „run doker” do tej grupy (faktycznie do węzła menedżera Swarm) Swarm zajmie planowania (wyjścia) opakowanie na jednym z węzłów.

  • Pozostawić pojemniki na wszystkich węzłach, aby komunikować się ze sobą

Zobacz oficjalnej dokumentacji pod adresem: Swarm mode overview & Docker Compose

Powiązane problemy