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