Docker jako automatyzacja

Skip to content

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.

Easy Zadanie 1 - Uruchom Nginx z Docker Compose

Utwórz plik docker-compose.yml uruchamiający serwer WWW Nginx:

  1. Utwórz nowy folder i utwórz plik docker-compose.yml
  2. Zdefiniuj usługę z image: nginx:latest na porcie 80
  3. Uruchom docker compose up -d
  4. Odwiedź http://localhost w przeglądarce

Medium Zadanie 2 - Dodaj usługę

Rozszerz docker-compose.yml z zadania 1 o dodatkową usługę. Na przykład:

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