Wprowadzenie
Docker Compose to praktyczne narzędzie do definiowania i koordynowania pracy aplikacji składających się z wielu kontenerów. Pozwala na opisanie powiązanych kontenerów, sieci oraz woluminów w pojedynczym pliku YAML. Jego popularność w środowiskach deweloperskich i produkcyjnych wynika z uproszczenia procesu tworzenia i zarządzania złożonymi aplikacjami wielokontenerowymi.
Ten poradnik przedstawi kroki instalacji i praktycznego wykorzystania Docker Compose na serwerze z systemem Rocky Linux 8.
Wymagania wstępne
Do przeprowadzenia tego procesu wymagane są następujące elementy:
- Serwer z zainstalowanym systemem Rocky Linux 8
- Konto użytkownika z uprawnieniami administratora (sudo)
- Aktywne połączenie z internetem
Proces instalacji Docker Compose
1. Instalacja Dockera
W przypadku, gdy Docker nie jest jeszcze zainstalowany na Twoim serwerze, wykonaj poniższe instrukcje:
sudo dnf install docker
2. Instalacja Docker Compose
Do zainstalowania Docker Compose użyjemy menedżera pakietów pip:
sudo pip install docker-compose
3. Weryfikacja instalacji
Aby upewnić się, że Docker Compose został poprawnie zainstalowany, wprowadź następujące polecenie:
docker-compose --version
Powinieneś zobaczyć wersję zainstalowanego Docker Compose.
Konfiguracja projektu z użyciem Docker Compose
1. Utworzenie pliku docker-compose.yml
W Twoim katalogu roboczym stwórz nowy plik o nazwie docker-compose.yml
:
cd ~/
touch docker-compose.yml
2. Wypełnienie pliku
Wprowadź do pliku docker-compose.yml
następującą zawartość:
version: '3.7'
services:
app:
image: nginx
ports:
- "80:80"
3. Omówienie zawartości pliku
version
: Określa wersję specyfikacji Docker Compose.services
: Sekcja definiująca poszczególne kontenery wchodzące w skład aplikacji.app
: Nazwa naszej usługi (kontenera).image
: Wskazuje obraz Dockera, który ma być wykorzystany dla tej usługi.ports
: Mapowanie portów między kontenerem a hostem.
Praktyczne zastosowanie Docker Compose
1. Uruchomienie projektu
Aby wystartować projekt zdefiniowany w pliku docker-compose.yml
, użyj następującego polecenia:
docker-compose up -d
Opcja -d
powoduje uruchomienie kontenerów w trybie pracy w tle.
2. Sprawdzenie stanu kontenera
Aby zweryfikować, czy kontener działa, wprowadź poniższe polecenie:
docker ps
Powinieneś zobaczyć listę działających kontenerów, w tym nasz uruchomiony kontener.
3. Dostęp do aplikacji
Teraz możesz uzyskać dostęp do serwera nginx, wpisując adres IP Twojego serwera i port zdefiniowany w pliku docker-compose.yml
(w naszym przykładzie port 80).
Zaawansowane możliwości
1. Składnia plików
Plik docker-compose.yml
pozwala na konfigurację wielu parametrów i opcji. Szczegółowe informacje znajdziesz w dokumentacji Docker Compose.
2. Konfiguracja sieci
Docker Compose umożliwia tworzenie i zarządzanie sieciami dla kontenerów. Pozwala to na izolację oraz umożliwienie im wzajemnej komunikacji.
3. Zarządzanie woluminami
Za pomocą Docker Compose można tworzyć i zarządzać woluminami, które pozwalają na przechowywanie danych, nawet po ponownym uruchomieniu kontenera.
4. Skrypty cyklu życia
Docker Compose obsługuje skrypty, które można wykonywać w różnych fazach cyklu życia kontenerów (tworzenie, uruchamianie, zatrzymywanie).
Zarządzanie projektem w Docker Compose
1. Zatrzymywanie i usuwanie projektu
Aby zatrzymać projekt uruchomiony za pomocą Docker Compose, wpisz:
docker-compose down
Aby usunąć projekt wraz z woluminami, użyj:
docker-compose down -v
Opcja -v
powoduje usunięcie również woluminów powiązanych z kontenerami.
2. Aktualizacja projektu
Aby zaktualizować projekt do najnowszej wersji obrazów, wykonaj:
docker-compose pull
A następnie ponownie uruchom projekt:
docker-compose up -d
Częste pytania
1. Dlaczego Docker Compose nie działa poprawnie?
Sprawdź, czy w pliku docker-compose.yml
nie ma błędów składni. Upewnij się także, że obrazy Dockera, które są używane w pliku, są dostępne.
2. Jak uzyskać dostęp do kontenera?
Aby uzyskać interaktywny dostęp do kontenera, użyj polecenia:
docker exec -it <nazwa-kontenera> bash
3. Jak zmienić limity zasobów dla kontenera?
Edytuj plik docker-compose.yml
i w sekcji usługi dodaj parametr resources
, np.:
resources:
limits:
memory: 512M
reservations:
memory: 256M
4. Jak zdefiniować zmienne środowiskowe dla kontenera?
W sekcji usługi pliku docker-compose.yml
dodaj sekcję environment
, np.:
environment:
- DB_HOST=localhost
- DB_PORT=5432
5. Jak utworzyć niestandardową sieć dla kontenerów?
W pliku docker-compose.yml
dodaj sekcję networks
, np.:
networks:
custom-network:
driver: bridge
6. Jak zamontować wolumin hosta w kontenerze?
W sekcji usługi dodaj sekcję volumes
w pliku docker-compose.yml
, np.:
volumes:
- /lokalna/sciezka:/sciezka/w/kontenerze
7. Jak zbudować obrazy Dockera z Docker Compose?
W sekcji usługi w pliku docker-compose.yml
dodaj sekcję build
, np.:
build:
context: .
dockerfile: Dockerfile
8. Jak nadpisać ustawienia domyślne Docker Compose?
Użyj plików docker-compose.override.yml
lub docker-compose.local.yml
, aby nadpisać ustawienia zdefiniowane w docker-compose.yml
.
9. Jak debugować problemy z Docker Compose?
Aby włączyć debugowanie, wykonaj następujące polecenie:
docker-compose up -d --build --force-recreate
10. Gdzie uzyskać wsparcie dla Docker Compose?
Wsparcie znajdziesz na forum Docker Compose lub na kanale Discord.
Podsumowanie
Docker Compose to potężne narzędzie, które ułatwia budowę i zarządzanie aplikacjami wielokontenerowymi. Dzięki prostemu językowi YAML pozwala na definiowanie złożonych struktur, które można z łatwością wdrażać i skalować. Niniejszy poradnik krok po kroku przeprowadził Cię przez proces instalacji i konfiguracji Docker Compose na systemie Rocky Linux 8. Dzięki zdobytej wiedzy możesz efektywnie wykorzystywać Docker Compose do zarządzania swoimi projektami wielokontenerowymi.
newsblog.pl
Maciej – redaktor, pasjonat technologii i samozwańczy pogromca błędów w systemie Windows. Zna Linuxa lepiej niż własną lodówkę, a kawa to jego główne źródło zasilania. Pisze, testuje, naprawia – i czasem nawet wyłącza i włącza ponownie. W wolnych chwilach udaje, że odpoczywa, ale i tak kończy z laptopem na kolanach.