To jest tekst przetłumaczony maszynowo, który może zawierać błędy!
Docker upraszcza wdrażanie aplikacji. Zamiast ręcznie instalować i konfigurować oprogramowanie na serwerze, definiujesz wszystko w plikach konfiguracyjnych. Rezultatem jest odtwarzalność, przenośność i szybkość konfiguracji.
Czym jest Docker Compose?
Za pomocą Docker Compose definiujesz wiele usług w jednym pliku (docker-compose.yml). Każda usługa to kontener z własną konfiguracją.
services:
web:
image: nginx:latest
ports:
- "80:80"
grafana:
image: grafana/grafana:latest
ports:
- "3000:3000"
Jeden polecenie konfiguruje wszystko:
docker compose up -d
# Starter tjenestene i bakgrunnen.
# Uruchamia usługi w tle.
Potrzebujesz przenieść usługę na inny serwer? Skopiuj plik i uruchom to samo polecenie. Wszystko jest identyczne.
Dlaczego to jest automatyzacja?
Pomyśl o różnicy:
| Ręczna konfiguracja | Z użyciem Docker Compose |
|---|---|
| Zainstaluj Nginx ręcznie | image: nginx:latest |
| Skonfiguruj porty | ports: "80:80" |
| Zainstaluj Grafanę ręcznie | image: grafana/grafana:latest |
| Udokumentuj wszystkie kroki | Wszystko jest udokumentowane w pliku .yml |
| Powtórz wszystko na następnym serwerze | docker compose up -d |
Plik Docker Compose jest dokumentacją. Opisuje dokładnie, jakie usługi są uruchomione, jakie porty wykorzystują i jak są skonfigurowane.
Przydatne polecenia Dockera
| Polecenie | Co robi |
|---|---|
docker compose up -d | Uruchamia wszystkie usługi w tle |
docker compose down | Zatrzymuje i usuwa wszystkie kontenery |
docker compose logs -f | Śledzi logi w czasie rzeczywistym |
docker compose pull | Pobiera najnowszą wersję wszystkich obrazów |
docker compose restart | Restartuje wszystkie usługi |
docker ps | Wyświetla uruchomione kontenery |
Volumes: Zapisywanie danych poza kontenerem
Kontenery są tymczasowe. Jeśli usuniesz kontener, cała jego zawartość znika. Aby zachować dane, używamy volumes:
services:
database:
image: postgres:16
ports:
- "5432:5432"
environment:
POSTGRES_PASSWORD: hemmelig # Hasło do bazy danych
volumes:
- db-data:/var/lib/postgresql/data
volumes:
db-data:
Tutaj pliki bazy danych są przechowywane w woluminie o nazwie db-data. Nawet jeśli usuniesz i ponownie utworzysz kontener, dane nadal tam będą.
Aktualizacja usług
Aktualizacja usługi Docker jest prosta:
# Pobierz najnowszą wersję
docker compose pull
# Uruchom ponownie z nową wersją
docker compose up -d
Porównaj to z ręcznym aktualizowaniem zainstalowanego oprogramowania, gdzie możesz musieć pobrać, skonfigurować i mieć nadzieję, że nic się nie zepsuje.
Zadanie 1 - Uruchom Nginx z Docker Compose
Utwórz plik docker-compose.yml uruchamiający serwer WWW Nginx:
- Utwórz nowy folder i utwórz plik
docker-compose.yml - Zdefiniuj usługę z
image: nginx:latestna porcie 80 - Uruchom
docker compose up -d - Odwiedź
http://localhostw przeglądarce
Zadanie 2 - Dodaj usługę
Rozszerz docker-compose.yml z zadania 1 o dodatkową usługę. Na przykład:
- Uptime Kuma na porcie 3001
- Grafana na porcie 3000
Uruchom wszystko za pomocą docker compose up -d i sprawdź, czy obie usługi działają jednocześnie.
Podsumowanie
- Docker Compose pozwala zdefiniować wiele usług w jednym pliku
- Plik Compose jest zarówno konfiguracją, jak i dokumentacją
- Woluminy przechowują dane poza kontenerem, dzięki czemu przetrwają restarty
- Aktualizacja to
docker compose pull+docker compose up -d - Docker ułatwia przenoszenie usług między serwerami