Docker Compose
Docker Compose to narzędzie umożliwiające definiowanie i zarządzanie wielokontenerowymi aplikacjami Docker. Pozwala na uruchamianie wielu kontenerów zdefiniowanych w jednym pliku docker-compose.yml
, co ułatwia zarządzanie złożonymi środowiskami kontenerowymi.
Główne Funkcje Docker Compose
- Definiowanie Usług: Docker Compose pozwala na zdefiniowanie wielu usług w jednym pliku YAML. Każda usługa może być uruchamiana jako osobny kontener.
- Zarządzanie Sieciami i Wolumenami: Umożliwia definiowanie sieci i wolumenów, które mogą być współdzielone między kontenerami.
- Automatyzacja: Pozwala na automatyczne budowanie i uruchamianie kontenerów, upraszczając procesy CI/CD.
- Orkiestracja: Umożliwia orkiestrację kontenerów w różnych środowiskach, co ułatwia zarządzanie złożonymi aplikacjami.
Przykłady Zastosowań Docker Compose
1. Prosta Aplikacja Webowa
Możesz użyć Docker Compose do uruchomienia prostej aplikacji webowej składającej się z serwera Nginx i backendu w Node.js.
Plik docker-compose.yml
:
version: '3'
services:
web:
image: nginx:latest
ports:
- "80:80"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
backend:
image: node:14
working_dir: /app
volumes:
- ./app:/app
command: npm start
Struktura katalogów:
.
├── app
│ └── index.js
├── docker-compose.yml
└── nginx.conf
Uruchomienie:
docker-compose up -d
To polecenie uruchamia zarówno serwer Nginx, jak i backend Node.js.
2. Aplikacja z Bazą Danych
Docker Compose jest idealny do uruchamiania aplikacji wymagających bazy danych, takich jak aplikacja webowa z bazą danych MySQL. Trzeba zwrócić uwagę kiedy uruchamiamy bazy danych w kontenerach, ponieważ nie zawsze jest to pożądane. To czy warto jest uruchamiać bazę w kontenerze zależy od przypadku użycia. Dlatego pamiętajcie zawsze zastanowić się czy chcemy to robić w kontenerach czy nie.
Plik docker-compose.yml
:
version: '3'
services:
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: example
wordpress:
image: wordpress:latest
ports:
- "8000:80"
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_PASSWORD: example
depends_on:
- db
Uruchomienie:
docker-compose up -d
To polecenie uruchamia kontenery MySQL i WordPress, automatycznie konfigurując połączenie między nimi.
Podstawowe Polecenia Docker Compose
-
Uruchomienie usług:
docker-compose up
-
Uruchomienie usług w tle:
docker-compose up -d
-
Zatrzymanie usług:
docker-compose stop
-
Zatrzymanie i usunięcie kontenerów, sieci i wolumenów:
docker-compose down
-
Wyświetlenie logów:
docker-compose logs
Podsumowanie
Docker Compose jest potężnym narzędziem do zarządzania złożonymi aplikacjami kontenerowymi, umożliwiając łatwe definiowanie, uruchamianie i zarządzanie wielokontenerowymi środowiskami. Jego zdolność do orkiestracji różnych usług w jednym pliku YAML sprawia, że jest niezastąpiony w nowoczesnym cyklu życia aplikacji.