Wdrażanie usług w Swarm
Wdrażaj i skaluj skonteneryzowane aplikacje jako usługi w klastrze Swarm oraz zarządzaj ich cyklem życia.
Wdrażanie usług w Swarm to bezpłatna lekcja Docker & DevOps Fundamentals na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Docker & DevOps Fundamentals, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Docker & DevOps Fundamentals zawiera 4 lekcji w sumie.
Czym jest usługa Docker Swarm
W Docker Swarm usługa to definicja sposobu uruchamiania skonteneryzowanej aplikacji w całym klastrze.
Zamiast uruchamiać pojedyncze kontenery definiuje się usługę, aby przekazać Swarm: „Chcę uruchomić X instancji tego obrazu, na tych portach i z tymi ustawieniami”.
Swarm dba następnie o utrzymanie oczekiwanego stanu, automatycznie uruchamiając ponownie kontenery w razie ich awarii.

Usługi a kontenery
Można ująć to następująco:
- Kontener to pojedyncza instancja aplikacji.
- Usługa to schemat uruchamiania jednego lub większej liczby identycznych kontenerów (nazywanych zadaniami) w całym Swarm.
Usługi zapewniają wysoką dostępność i skalowalność, rozdzielając zadania oraz automatycznie obsługując awarie.
Wdrażanie pierwszej usługi
Polecenie docker service create służy do wdrażania aplikacji jako usług w klastrze Swarm. Utwórzmy prostą usługę serwera WWW Nginx.
Proszę uruchomić ten przykład:
docker service create \
--name my-web-app \
-p 80:80 \
--replicas 1 \
nginxZrozumienie tworzenia usługi
Przeanalizujmy polecenie, którego właśnie użyliśmy:
--name my-web-app: Nadaje usłudze łatwą do zapamiętania nazwę.-p 80:80: Mapuje port 80 na węzłach Swarm na port 80 wewnątrz kontenera.--replicas 1: Informuje Swarm, aby utrzymywał jedną uruchomioną instancję (zadanie) tej usługi.nginx: Określa obraz Docker używany przez zadania usługi.
Sprawdzanie usług
Po utworzeniu usługi warto sprawdzić jej stan i wyświetlić uruchomione zadania. Służą do tego następujące polecenia:
docker service ls: Wyświetla listę wszystkich usług w Swarm.docker service ps <service_name>: Wyświetla poszczególne zadania (kontenery) powiązane z usługą.
docker service ls
docker service ps my-web-appZwiększanie skali usługi
Jedną z głównych zalet Docker Swarm jest łatwe skalowanie. Liczbę uruchomionych instancji (replik) usługi można zwiększyć za pomocą jednego polecenia.
Zwiększmy skalę my-web-app do trzech replik:
docker service scale my-web-app=3Zmniejszanie skali usługi
Równie łatwo można zmniejszyć skalę usługi, aby ograniczyć zużycie zasobów lub dostosować obsługę ruchu. Swarm zatrzyma nadmiarowe kontenery w kontrolowany sposób, pozostawiając pozostałe uruchomione.
Zmniejszmy ponownie skalę my-web-app do jednej repliki:
docker service scale my-web-app=1Aktualizowanie usługi
Gdy trzeba wdrożyć nową wersję aplikacji lub zmienić ustawienia usługi, polecenie docker service update wykonuje aktualizację kroczącą. Swarm aktualizuje zadania jedno po drugim, dzięki czemu aplikacja pozostaje dostępna.
Zaktualizujmy usługę Nginx do konkretnej wersji:
docker service update --image nginx:1.25 my-web-appUsuwanie usługi
Gdy usługa nie jest już potrzebna, można usunąć ją z Swarm. Spowoduje to zatrzymanie wszystkich powiązanych zadań i usunięcie definicji usługi z klastra.
Aby usunąć przykładową usługę aplikacji WWW:
docker service rm my-web-appQuiz z zarządzania usługami
Mają Państwo usługę o nazwie my-backend, uruchomioną z 3 replikami i korzystającą z obrazu my-backend:v1. Należy zaktualizować ją tak, aby używała nowego obrazu my-backend:v2, a także zwiększyć liczbę replik do 5.
Powtórzenie: usługi Swarm
Świetna praca! Poznali już Państwo podstawy wdrażania aplikacji i zarządzania nimi jako usługami w Docker Swarm.
- Usługi definiują oczekiwany stan skonteneryzowanych aplikacji.
- Nauczyli się Państwo tworzyć usługi za pomocą
docker service create. - Omówiliśmy sprawdzanie, skalowanie (
docker service scale) i aktualizowanie (docker service update) usług. - Usługi można również usuwać za pomocą
docker service rm.
Usługi są podstawą tworzenia skalowalnych i odpornych na awarie aplikacji w klastrze Swarm!
Często zadawane pytania
Czy lekcja „Wdrażanie usług w Swarm” jest bezpłatna?
Tak — pełny tekst „Wdrażanie usług w Swarm” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Docker & DevOps Fundamentals, przejdź na CoddyKit PRO. Kurs Docker & DevOps Fundamentals zawiera 4 lekcji w sumie.
Co nauczysz się w „Wdrażanie usług w Swarm”?
Wdrażaj i skaluj skonteneryzowane aplikacje jako usługi w klastrze Swarm oraz zarządzaj ich cyklem życia. Ćwiczysz Docker & DevOps Fundamentals z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Docker & DevOps Fundamentals?
Nie wymagamy żadnego doświadczenia. Docker & DevOps Fundamentals w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.
Ile czasu zajmuje lekcja „Wdrażanie usług w Swarm”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Docker & DevOps Fundamentals?
Tak. Każda lekcja Docker & DevOps Fundamentals zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Wprowadzenie do Docker Swarm
- Konfigurowanie klastra Swarm
- Wdrażanie usług w Swarm
- Skalowanie i aktualizacje kroczące w Swarm