Pisanie pliku Compose
Poznaj składnię YAML pliku `docker-compose.yml` do definiowania usług, sieci i wolumenów.
Pisanie pliku Compose to bezpłatna lekcja Docker & DevOps Fundamentals na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Docker & DevOps Fundamentals, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Docker & DevOps Fundamentals zawiera 4 lekcji w sumie.
Plik Compose: plan aplikacji
Witamy w świecie tworzenia plików Docker Compose! Plik docker-compose.yml jest planem służącym do definiowania i uruchamiania aplikacji Docker składających się z wielu kontenerów.
Za pomocą składni YAML konfiguruje usługi, sieci i wolumeny aplikacji w jednym pliku.

YAML: szybkie przypomnienie
Pliki Docker Compose są zapisywane w formacie YAML (YAML Ain't Markup Language). To przyjazny dla człowieka standard serializacji danych.
- Pary klucz-wartość:
key: value - Listy: Elementy zaczynają się od łącznika (
- item) - Wcięcia: Mają kluczowe znaczenie przy definiowaniu struktury i hierarchii. Używaj spacji, nie tabulatorów!
Klucz `version`
Każdy plik docker-compose.yml zaczyna się od klucza version. Określa on wersję formatu pliku Compose i pomaga Docker Compose zrozumieć, jak interpretować plik.
W przypadku większości nowoczesnych aplikacji zalecana jest wersja '3.8' lub podobna wersja '3.x'.
version: '3.8'Definiowanie `services`
Sekcja services służy do definiowania poszczególnych kontenerów (usług), z których składa się aplikacja. Każda usługa reprezentuje jeden komponent, na przykład serwer WWW lub bazę danych.
W sekcji services wpisujesz każdą usługę pod wybraną przez siebie nazwą.
version: '3.8'
services:
web:
# Service configuration goes here
database:
# Another service's configurationUsługi: `image` i `ports`
W definicji usługi image określa, którego obrazu Dockera należy użyć, na przykład nginx:latest. Klucz ports mapuje porty kontenera na porty hosta, umożliwiając dostęp z zewnątrz.
"80:80"mapuje port 80 hosta na port 80 kontenera.
version: '3.8'
services:
web:
image: nginx:latest
ports:
- "80:80"Usługa: `volumes`
Klucz volumes w obrębie usługi pozwala zamontować ścieżki z komputera hosta w kontenerze albo użyć nazwanych wolumenów do trwałego przechowywania danych.
W tym przykładzie lokalny katalog ./app jest montowany w ścieżce /usr/src/app wewnątrz kontenera.
version: '3.8'
services:
app:
image: my-node-app
volumes:
- ./app:/usr/src/appZmienne `environment` usługi
Użyj klucza environment, aby przekazać zmienne środowiskowe do kontenerów usługi. Jest to niezwykle ważne w przypadku konfiguracji, która może zmieniać się między środowiskami (np. parametrów połączenia z bazą danych).
Zmienne można określić jako pary klucz-wartość lub w formie listy.
version: '3.8'
services:
backend:
image: my-api
environment:
- DATABASE_URL=postgres://user:pass@host:5432/db
- NODE_ENV=developmentElementy najwyższego poziomu `networks` i `volumes`
Oprócz definiowania ich w ramach usług można także zadeklarować niestandardowe nazwane wolumeny i sieci na najwyższym poziomie pliku docker-compose.yml.
Pozwala to tworzyć bardziej uporządkowane i wielokrotnego użytku definicje przechowywania danych oraz komunikacji między kontenerami.
version: '3.8'
services:
# ... service definitions ...
networks:
my_app_network:
# custom network configuration
volumes:
db_data:
# named volume configurationPołączenie wszystkich elementów
Oto niewielki przykład łączący poznane informacje. Definiuje on usługę internetową i usługę bazy danych, korzystając z obrazu, portów oraz nazwanego wolumenu.
Proszę zwrócić uwagę, jak wcięcia tworzą strukturę.
version: '3.8'
services:
web:
image: nginx:latest
ports:
- "80:80"
volumes:
- web_content:/usr/share/nginx/html
db:
image: postgres:13
environment:
- POSTGRES_DB=mydb
- POSTGRES_USER=user
- POSTGRES_PASSWORD=secret
volumes:
web_content:
db_data:Sprawdzanie pliku Compose
Który z poniższych fragmentów YAML poprawnie definiuje usługę Docker Compose o nazwie „api”, korzystającą z obrazu „myapi:1.0” i udostępniającą port kontenera 3000 na porcie hosta 8080?
Podsumowanie: najważniejsze elementy pliku Compose
Świetnie! Poznali Państwo podstawy tworzenia pliku docker-compose.yml.
- Plik zaczyna się od elementu
version. - Element
servicesdefiniuje komponenty aplikacji. - Każda usługa korzysta z elementu
image, może udostępniaćports, używaćvolumesdo utrwalania danych oraz ustawiać zmienneenvironment. - Elementy najwyższego poziomu
networksivolumesumożliwiają zaawansowaną konfigurację.
Opanowanie tej struktury YAML jest kluczowe do orkiestracji aplikacji składających się z wielu kontenerów!
Często zadawane pytania
Czy lekcja „Pisanie pliku Compose” jest bezpłatna?
Tak — pełny tekst „Pisanie pliku Compose” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Docker & DevOps Fundamentals, przejdź na CoddyKit PRO. Kurs Docker & DevOps Fundamentals zawiera 4 lekcji w sumie.
Co nauczysz się w „Pisanie pliku Compose”?
Poznaj składnię YAML pliku `docker-compose.yml` do definiowania usług, sieci i wolumenów. Ćwiczysz Docker & DevOps Fundamentals z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Docker & DevOps Fundamentals?
Nie wymagamy żadnego doświadczenia. Docker & DevOps Fundamentals w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.
Ile czasu zajmuje lekcja „Pisanie pliku Compose”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Docker & DevOps Fundamentals?
Tak. Każda lekcja Docker & DevOps Fundamentals zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Czym jest Docker Compose?
- Pisanie pliku Compose
- Wdrażanie aplikacji wielousługowych
- Zmienne środowiskowe i pliki .env