Docker Compose – kompletny tutorial

1. Czym jest Docker Compose

Docker Compose to narzędzie służące do uruchamiania wielu kontenerów jednocześnie przy użyciu jednego pliku konfiguracyjnego docker-compose.yml.

Zamiast uruchamiać każdy kontener osobno poleceniem docker run, można zdefiniować całą aplikację jako stack usług.

Najczęściej używane do:

  • aplikacji webowych (nginx + backend + baza danych)
  • środowisk developerskich
  • testów
  • mikroserwisów
  • uruchamiania całych platform (np. WordPress + MySQL)

Docker Compose pozwala:

  • definiować wiele kontenerów
  • ustawiać sieci między nimi
  • zarządzać wolumenami
  • ustawiać zmienne środowiskowe
  • uruchamiać wszystko jednym poleceniem

Bezpłatne szkolenie: Zbuduj 5 agentów AI w n8n!

Weź udział w intensywnym, praktycznym szkoleniu i naucz się tworzyć automatyzacje oraz agentów AI komunikujących się przez komunikator. W programie m.in.: RAG Chatbot, Voice Agent, Wirtualna Rada Nadzorcza, Asystentka głosowa i Claude Code Admin.

Zapisy do 23 kwietnia, 23:59

Sprawdź szczegóły: https://asdevops.pl/warsztaty/

 

 


2. Instalacja Docker na Ubuntu

Najpierw należy zainstalować Docker.

Aktualizacja systemu

sudo apt update
sudo apt upgrade -y

Jeśli jesteś zalogowany jako root zainstaluj sudo oraz curl

apt install sudo -y

apt install curl -y

Dodanie klucza oraz repozytorium Docker

# Add Docker's official GPG key:
sudo apt update
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Signed-By: /etc/apt/keyrings/docker.asc
EOF

sudo apt update

Instalacja Docker

sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y

Sprawdź czy po zainstalowaniu docker jest uruchodzmiony, jeśli jest enabled oraz active (running), możesz przejść do kolejnych działań.

sudo systemctl status docker

Jeśli nie uruchom Dockera komendą:

sudo systemctl start docker

3. Sprawdzenie instalacji

Sprawdzenie wersji:

docker --version

W trakcie pisania tego artykułu, moja wersja to 29.2.1 a wersja docker compose to 5.0.2

Test działania:

docker run hello-world

5. Pierwszy projekt Docker Compose

Utwórz katalog projektu.

mkdir compose-demo
cd compose-demo

6. Tworzenie pliku docker-compose.yml

nano docker-compose.yml

Przykład prostej aplikacji NGINX

version: "3.9"services:  web:
image: nginx:latest
container_name: nginx-test
ports:
- "8080:80"

Wyjaśnienie:

elementznaczenie
serviceslista kontenerów
webnazwa usługi
imageobraz Docker
portsmapowanie portów

7. Uruchomienie aplikacji

W katalogu z plikiem compose:

docker compose up -d

Parametr -d oznacza tryb detached (w tle). Pulled oznacza pobranie obrazu nginx:latest (latest oznacza najnowszą werjsę). Dwa razy created odpowiada kolejno za: utworzenie sieci (Network root_default) oraz za utworzenie kontenera o nazwie nginx-test (którą zdefiniowaliśmy w pliku docker-compose.yml / container_name: nginx-test


8. Sprawdzenie kontenerów

docker ps

Powinien pojawić się kontener nginx-test.


9. Test działania

W przeglądarce wpisz adres IP Twojego serwera (mój adres IP to 192.168.1.74) oraz wskaż na port 8080:

http://adres_IP_Twojego_serwera:8080

Wyświetli się strona powitalna nginx, oznacza to że aplikacja działa i jest dostępna z poziomu przeglądarki !


10. Zatrzymywanie kontenerów

docker compose down

To polecenie:

  • zatrzymuje kontenery
  • usuwa sieć compose

11. Logi aplikacji

docker compose logs

12. Najważniejsze komendy Docker Compose

komendaopis
docker compose upuruchamia stack
docker compose up -duruchamia w tle
docker compose downzatrzymuje stack
docker compose pslista usług
docker compose logslogi
docker compose restartrestart

13. Usunięcie wszystkiego

docker compose down -v

Usuwa:

  • kontenery
  • sieci
  • wolumeny

Docker Compose umożliwia:

  • zarządzanie wieloma kontenerami
  • uruchamianie całych aplikacji jednym poleceniem
  • automatyzację środowisk developerskich
  • łatwe wdrażanie aplikacji

Jest standardem w:

  • DevOps
  • CI/CD
  • homelab
  • środowiskach testowych

Podsumowanie

Artykuł przedstawia podstawy pracy z Docker Compose oraz proces instalacji i uruchamiania kontenerów przy użyciu Docker na systemie Ubuntu.

Na początku wyjaśniono, czym jest Docker Compose. Narzędzie to służy do zarządzania wieloma kontenerami jednocześnie przy użyciu jednego pliku konfiguracyjnego docker-compose.yml. Umożliwia definiowanie usług aplikacji, konfigurację sieci, wolumenów oraz zmiennych środowiskowych, a także uruchamianie całego zestawu kontenerów jednym poleceniem. Rozwiązanie to jest często wykorzystywane przy budowie aplikacji webowych, środowisk developerskich, mikroserwisów oraz w projektach wymagających współpracy kilku komponentów, takich jak serwer WWW i baza danych.

Następnie opisano proces instalacji Dockera na systemie Ubuntu. Obejmuje on aktualizację systemu, instalację wymaganych narzędzi, dodanie oficjalnego repozytorium Dockera oraz instalację pakietów odpowiedzialnych za działanie silnika kontenerów i wtyczki Docker Compose. Po instalacji zaleca się sprawdzenie statusu usługi Docker oraz jej uruchomienie, jeśli nie działa.

Kolejny etap dotyczy weryfikacji poprawności instalacji poprzez sprawdzenie wersji Dockera i uruchomienie testowego kontenera hello-world. Pozwala to potwierdzić, że środowisko kontenerowe działa prawidłowo.

W dalszej części przedstawiono utworzenie prostego projektu Docker Compose. W nowym katalogu tworzony jest plik docker-compose.yml, w którym definiowana jest usługa wykorzystująca obraz NGINX. Konfiguracja zawiera podstawowe elementy, takie jak nazwa usługi, obraz kontenera oraz mapowanie portu serwera na port kontenera.

Opisano również sposób uruchamiania aplikacji przy użyciu polecenia docker compose up -d, które startuje kontenery w tle oraz automatycznie tworzy sieć dla usług. Następnie pokazano, jak sprawdzić działające kontenery poleceniem docker ps oraz jak przetestować działanie aplikacji poprzez otwarcie w przeglądarce adresu IP serwera wraz z odpowiednim portem.

W artykule omówiono także podstawowe operacje administracyjne, takie jak przeglądanie logów kontenerów, restart usług oraz zatrzymywanie i usuwanie całego środowiska przy pomocy polecenia docker compose down. Wskazano również opcję usunięcia wszystkich zasobów, w tym wolumenów, przy użyciu docker compose down -v.

Podsumowując, Docker Compose umożliwia zarządzanie wieloma kontenerami w ramach jednej aplikacji, upraszcza konfigurację środowisk oraz pozwala uruchamiać złożone systemy przy użyciu pojedynczego pliku konfiguracyjnego. Narzędzie to jest powszechnie stosowane w praktykach DevOps, procesach CI/CD, środowiskach testowych oraz w projektach typu homelab.

Bezpłatne szkolenie: Zbuduj 5 agentów AI w n8n!

Weź udział w intensywnym, praktycznym szkoleniu i naucz się tworzyć automatyzacje oraz agentów AI komunikujących się przez komunikator. W programie m.in.: RAG Chatbot, Voice Agent, Wirtualna Rada Nadzorcza, Asystentka głosowa i Claude Code Admin.

Zapisy do 23 kwietnia, 23:59

Sprawdź szczegóły: https://asdevops.pl/warsztaty/

 

 

 

 

Bezpłatny dostęp do warsztatów "Zbuduj 5 agentów AI w n8n!"

X