Sobes.tech
Middle

Jaka jest różnica między Docker Compose a Docker Swarm?

sobes.tech AI

Odpowiedź od AI

Docker Compose zarządza wieloma kontenerami jako jednym serwisem na jednej maszynie. Używany jest do rozwoju, testowania i lokalnych wdrożeń. Pliki konfiguracyjne są opisywane w formacie YAML.

Docker Swarm to wbudowany orkestrator klastra Docker. Umożliwia uruchamianie i zarządzanie rozproszonym klastrem złożonym z kilku maszyn z Dockerem. Używany jest do wdrożeń produkcyjnych, zapewnia skalowalność, odporność na awarie i równoważenie obciążenia.

Główne różnice:

Cecha Docker Compose Docker Swarm
Skalowalność Na jednej maszynie Na wielu maszynach (klaster)
Przeznaczenie Rozwój, testy, lokalne Produkcja, systemy rozproszone
Orkiestracja Nie (zarządza wieloma serwisami) Tak (wbudowany orkestrator)
Odporność na awarie Nie Tak (samo-naprawa serwisów)
Równoważenie obciążenia Nie Tak (wbudowane)
Konfiguracja serwisów docker-compose.yml docker stack deploy z plikiem YAML

Przykład docker-compose.yml dla dwóch serwisów (web i db):

# docker-compose.yml
version: '3.8'
services:
  web:
    image: nginx
    ports:
      - "80:80"
  db:
    image: postgres
    environment:
      POSTGRES_PASSWORD: mysecretpassword

Przykład wdrożenia stosu w Swarm:

# Wdrożenie serwisów opisanych w pliku YAML
docker stack deploy -c my-swarm-stack.yaml myapp