Podstawowe informacje o Docker Compose¶
Docker Compose jest to narzędzie umożliwiające zarządzanie i definiowanie wielu kontenerów z poziomu jednego pliku yaml. Umożliwia tworzenie nowych kontenerów, łączących je sieci, a także automatyzowaniem monitorowania ich stanu (health checki) oraz ich skalowania.
Możliwe jest także kolejność uruchamiania kontenerów.
Wersja 1 docker compose¶
Przykładowe użycie:
services:
redis:
image: redis
db:
image: postgres:9.4
vote:
image: voting-app
ports:
- 5000:80
links:
- redis
Poprzez wpis image wybierany jest kontener spośród istniejących lokalnie lub w repozytoriach kontenerów.
Jeżeli chcemy zbudować jakiś podczas uruchamiania procesu docker-compose należy zamienić image na build i podać do pliku typu Dockerfile ścieżkę.
Przykład takiej operacji:
Wersja 2 oraz 3 docker compose¶
Najnowsza wersja docker compose jest w wersji 3.
Względem tej pierwszej wprowadzono wiele zmian:
- konieczne podanie wersji docker compose na początku pliku
-
wszystko umieszczone w sekcji
services: -
kolejność uruchamiania kontenerów (np. jeden po drugim, gdy coś zrobi)
-
tworzenie networków, początkowo (w wersji 1) wszystkie kontenery w jednym bridge'u, w wersji 2 wprowadzono nową sieć dla nowo tworzonych kontenerów w ramach tworzenia serwisu
version: 3 services: redis: image: redis networks: # przypisanie sieci - front-end # do kontenera db: image: postgres:9.4 networks: - front-end vote: image: voting-app ports: - 5000:80 depends_on: # w zależności od działania - redis # kontenera redis networks: - front-end - back-end networks: # utworzenie nowych sieci front-end: back-end: - w wersji 3 istnieje wsparcie
Docker Swarm