⚠
Dwie aktualizacje od czasu oryginalnego artykułu: (1) CentOS 8 osiągnął koniec życia 31 grudnia 2021 roku — używaj AlmaLinux 9, Rocky Linux 9 lub CentOS Stream. (2) Docker Compose v1 (polecenie docker-compose) jest przestarzałe. Compose v2 jest teraz wtyczką Dockera i uruchamia się jako docker compose (ze spacją). Poniższe kroki używają aktualnego podejścia.
Docker Compose pozwala definiować i uruchamiać aplikacje wielokontenerowe z jednego pliku YAML — jedno polecenie uruchamia cały stos (aplikacja, baza danych, cache) z odpowiednimi sieciami i wolumenami. Compose jest teraz wbudowany w Dockera jako wtyczka (v2), więc instaluje się go razem z Dockerem. Oto aktualna konfiguracja dla AlmaLinux 9, Rocky Linux 9 i CentOS Stream.
Krok 1: Dodaj repozytorium Docker
sudo dnf install -y dnf-plugins-core sudo dnf config-manager --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
Krok 2: Zainstaluj Docker i wtyczkę Compose
Pakiet docker-compose-plugin zapewnia Compose v2:
sudo dnf install -y docker-ce docker-ce-cli containerd.io \ docker-buildx-plugin docker-compose-plugin
Krok 3: Uruchom Docker i zweryfikuj
sudo systemctl enable --now docker docker --version docker compose version
Zwróć uwagę: polecenie dla v2 to docker compose (ze spacją), a nie stare docker-compose. Aby uruchamiać Docker bez sudo, dodaj swojego użytkownika do grupy docker: sudo usermod -aG docker $USER, a następnie wyloguj się i zaloguj ponownie.
Krok 4: Przykładowy docker-compose.yml
Utwórz plik o nazwie docker-compose.yml — oto prosty stos WordPress + MySQL:
services: db: image: mysql:8.0 environment: MYSQL_ROOT_PASSWORD: change_me MYSQL_DATABASE: wordpress volumes: - db_data:/var/lib/mysql wordpress: image: wordpress:latest depends_on: - db ports: - "8080:80" environment: WORDPRESS_DB_HOST: db WORDPRESS_DB_NAME: wordpress volumes: db_data:
Krok 5: Kluczowe polecenia Compose
docker compose up -d # uruchom stos w tle docker compose ps # lista uruchomionych usług docker compose logs -f # śledź logi docker compose down # zatrzymaj i usuń kontenery docker compose pull # zaktualizuj obrazy
Nowoczesny plik Compose nie wymaga już linii version:, którą pokazują starsze poradniki — Compose v2 ją ignoruje. Docker Compose dobrze działa na dowolnym VPS lub serwerze dedykowanym; w przypadku stosów produkcyjnych zauważalną różnicę robią pamięć NVMe i gwarantowana ilość RAM.