Przejdź do głównej zawartości

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

  1. 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.
  2. Zarządzanie Sieciami i Wolumenami: Umożliwia definiowanie sieci i wolumenów, które mogą być współdzielone między kontenerami.
  3. Automatyzacja: Pozwala na automatyczne budowanie i uruchamianie kontenerów, upraszczając procesy CI/CD.
  4. 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

  1. Uruchomienie usług:

    docker-compose up
  2. Uruchomienie usług w tle:

    docker-compose up -d
  3. Zatrzymanie usług:

    docker-compose stop
  4. Zatrzymanie i usunięcie kontenerów, sieci i wolumenów:

    docker-compose down
  5. 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.