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.

Tagged: