Docker Swarm: Orkiestracja kontenerów na wielu hostach

Kacper Sieradziński
Kacper Sieradziński
17 marca 2025Edukacja3 min czytania

Docker Swarm to potężne narzędzie do organizacji wielu kontenerów na różnych hostach, ułatwiające ich zarządzanie w zautomatyzowany sposób. Korzystanie z Docker Swarm przynosi wiele korzyści, takich jak skalowalność aplikacji, automatyzacja procesów i łatwość zarządzania infrastrukturą. W tym artykule dowiesz się, jak skonfigurować Docker Swarm oraz jak z jego pomocą efektywnie zarządzać kontenerami w rozproszonym środowisku.

Obraz główny Docker Swarm: Orkiestracja kontenerów na wielu hostach
Kurs Docker od podstaw

Kurs Docker od podstaw

Naucz się Dockera od zera! Kontenery, obrazy, Docker Compose i wdrożenia w praktyce. Kompletny kurs z zadaniami.

Czym jest Docker Swarm?

Docker Swarm to usługa Docker pozwalająca na tworzenie i zarządzanie klastrami kontenerów. Dzięki niej użytkownik może określić usługi i ich replikacje na wielu hostach, co ułatwia zarządzanie skalowalnością i dostępnością aplikacji. Docker Swarm integruje się z ekosystemem Docker, co czyni go naturalnym wyborem dla osób korzystających z Dockera.

Jak skonfigurować Docker Swarm?

Tworzenie klastru Swarm

Aby utworzyć klastry Swarm, potrzebujesz przynajmniej dwóch serwerów: jednego menedżera (manager), który zarządza klastrem, oraz jednego lub więcej pracowników (worker), którzy wykonują zadania.

  1. Inicjalizacja menedżera: Na wybranym serwerze menedżera, uruchom poniższe polecenie:

    Bash
    1 docker swarm init --advertise-addr <manager-ip>

    Komenda ta zainicjalizuje klaster Swarm i zwróci token, który używany jest do dołączania kolejnych węzłów jako pracowników.

  2. Dołączanie pracowników do klastra: Na serwerach pracowników, użyj następującego polecenia, które zawiera token uzyskany w poprzednim kroku:

    Bash
    1 docker swarm join --token <token> <manager-ip>:2377

Konfiguracja usług

Po skonfigurowaniu klastru, możesz zdefiniować usługi, które mają być uruchomione na klastrze Swarm.

Jeśli dopiero zaczynasz przygodę z konteneryzacją i chcesz najpierw poznać prostszy sposób zarządzania wieloma kontenerami na jednym hoście, sprawdź również artykuł Docker Compose - ułatwienie zarządzania wieloma kontenerami.
Docker Compose pozwala tworzyć środowiska wielokontenerowe lokalnie, zanim przejdziesz do orkiestracji w klastrach Swarm.

  1. Stworzenie usługi: Przykład komendy do utworzenia usługi z replikacją:

    Bash
    1 docker service create --name my_web --replicas 3 -p 80:80 nginx

    To polecenie tworzy usługę my_web, która składa się z trzech replik serwera Nginx, dostępnych na porcie 80.

Jak zarządzać wieloma kontenerami?

Docker Swarm umożliwia centralne zarządzanie kontenerami w klastrze. Z jego pomocą można łatwo:

  • Skalować usługi: Zwiększanie lub zmniejszanie liczby replik poprzez użycie komendy docker service scale.

    Bash
    1 docker service scale my_web=5
  • Aktualizować obrazy kontenerów: Możliwe jest aktualizowanie kontenerów bez przerywania działania usług.

    Bash
    1 docker service update --image my_new_nginx_image my_web

Konfiguracja w docker-compose

Docker Compose również obsługuje Swarm, umożliwiając specyfikację środowisk w plikach docker-compose.yml. Przykładowa konfiguracja wygląda następująco:

YAML
1 2 3 4 5 6 7 8 9 10 11 12 13 14 version: '3.8' services: web: image: nginx ports: - "80:80" deploy: replicas: 3 update_config: parallelism: 2 delay: 10s restart_policy: condition: on-failure

Podsumowanie

Docker Swarm to zaawansowane narzędzie umożliwiające efektywne zarządzanie i skalowanie kontenerów. Pozwala na łatwe tworzenie klastrów, automatyzację procesów oraz zwiększenie dostępności aplikacji. Zachęcamy do dalszego zgłębiania wiedzy na temat Dockera, aby w pełni wykorzystać jego możliwości.

Kontynuuj eksplorację możliwości Docker Swarm, aby dowiedzieć się, jak zintegrować go z istniejącymi procesami CI/CD i zwiększyć efektywność zarządzania aplikacjami.

Jeśli chcesz pójść krok dalej i poznać bardziej rozbudowane narzędzie do orkiestracji kontenerów, zobacz również Kubernetes - kompleksowe zarządzanie klastrami kontenerów. Kubernetes oferuje większe możliwości automatyzacji, skalowania i zarządzania infrastrukturą w środowiskach produkcyjnych.

Ty wybierasz :) Teraz możesz wrócić do listy artykułów Wróć do strony głównej serii lub przejść do kolejnego.

Tagi

#Python#Nauka programowania#Podstawy