Installeer en gebruik Docker Compose op CentOS 8

Docker Compose is een hulpmiddel dat gebruikt kan worden om meerdere containers als een enkele dienst te definiëren en uit te voeren. Met Docker Compose kun je meerdere containers aan elkaar koppelen en een toepassing inzetten vanuit een enkel commando. Het wordt vooral gebruikt in de ontwikkel-, test- en staging omgeving. Docker Compose gebruikt een YAML bestand om een complexe stack in een bestand te definiëren en die met een enkel commando uit te voeren.

In deze zelfstudie laten we je zien hoe je Docker Compose installeert en gebruikt in CentOS 8.

Vereisten

  • Een server die CentOS 8 draait.
  • Een root wachtwoord is op de server ingesteld.

Installeer Docker

Voordat je begint, moet je zeker weten dat Docker op je server geïnstalleerd is. Als het niet geïnstalleerd is, moet je de Docker-CE repository aan je systeem toevoegen. Je kunt hem toevoegen met het volgende commando:

dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo

Als de repository is toegevoegd, installeer je de nieuwste versie van docker met het volgende commando:

dnf install docker-ce --nobest -y
systemctl start docker
systemctl enable docker

Je kunt de docker versie verifiëren met het volgende commando:

docker --version

Je zou de volgende uitvoer moeten zien:

Docker version 19.03.5, build 633a0ea

Installeer Docker Compose

Docker Compose is standaard niet beschikbaar in de CentOS 8 standaard repository. Je zult het dus moeten downloaden uit de Git repository.

Installeer eerst het curl commando met het volgende commando:

dnf install curl -y

Download vervolgens de nieuwste versie van Docker Compose uit de Git reposiotry met curl zoals hieronder te zien is:

curl -L https://github.com/docker/compose/releases/download/1.25.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

Als de download voltooid is, maak je het gedownloade binaire bestand uitvoerbaar met het volgende commando:

chmod +x /usr/local/bin/docker-compose

Vervolgens kun je de Compose versie verifiëren met het volgende commando:

docker-compose --version

Je zou de volgende uitvoer moeten zien:

docker-compose version 1.25.0, build 0a186604

Je kunt alle opties zien die beschikbaar zijn met docker-compose met het volgende commando:

docker-compose --help

Je zou de volgende pagina moeten zien:

Docker Compose Commandline Opties

Zet Drupal in met Docker Compose

In dit deel laten we je zien hoe je Drupal installeert met Docker Compose.

Maak eerst een directory voor je drupal met het volgende commando:

mkdir drupal

Maak vervolgens een drupal.yaml bestand aan binnen de drupal directory:

nano drupal/docker-compose.yaml

Voeg de volgende inhoud toe:

version: '3.3'

services:
  drupal:
    image: drupal:latest
    ports:
      - 80:80
    volumes:
      - drupal_modules:/var/www/html/modules
      - drupal_profiles:/var/www/html/profiles
      - drupal_themes:/var/www/html/themes
      - drupal_sites:/var/www/html/sites
    restart: always

  postgres:
    image: postgres:10
    environment:
      POSTGRES_PASSWORD: your_postgres_password
    volumes:
        - db_data:/var/lib/postgresql/data
    restart: always

volumes:
  drupal_modules:
  drupal_profiles:
  drupal_themes:
  drupal_sites:
  db_data:

Sla het bestand op en sluit het als je klaar bent. Verander vervolgens de directory in drupal en start je Docker container met het volgende commando:

cd drupal
docker-compose up -d

Het bovenstaande commando zal de drupal en postgresql containers downloaden en uitvoeren.

Je kunt je draaiende containers controleren met het volgende commando:

docker-compose ps

Je zou de volgende uitvoer moeten zien:

      Name                     Command               State         Ports       
-------------------------------------------------------------------------------
drupal_drupal_1     docker-php-entrypoint apac ...   Up      0.0.0.0:80->80/tcp
drupal_postgres_1   docker-entrypoint.sh postgres    Up      5432/tcp 

Nu kun je de URL http://your-server-ip bezoeken om de Drupal web installatie wizard te openen, zoals hieronder te zien is:

Kies taal

Werken met Docker Compose

In dit onderdeel laten we je zien hoe je het docker-compose commando kunt gebruiken.

Om de Docker Compose diensten te stoppen voer je het volgende commando uit binnen de drupal directory:

docker-compose stop

Je zou de volgende uitvoer moeten zien:

Stopping drupal_drupal_1   ... done
Stopping drupal_postgres_1 ... done

Om de Docker Compose diensten te starten voer je het volgende commando uit binnen de drupal directory:

docker-compose start

Om de logs van containers te bekijken voer je het volgende commando uit:

docker-compose logs

Om de logs van een specifieke container te bekijken, voer je het volgende commando uit:

docker-compose logs drupal

Je kunt je configuratiebestand bekijken met het volgende commando:

docker-compose config

Om de containers te pauzeren en te ontpauzeren voer je het volgende commando uit:

docker-compose pause

Uitvoer:

Pausing drupal_postgres_1 ... done
Pausing drupal_drupal_1   ... done
docker-compose unpause

Uitvoer:

Unpausing drupal_drupal_1   ... done
Unpausing drupal_postgres_1 ... done

Om alle containers te verwijderen voer je het volgende commando uit:

docker-compose down

Je zou de volgende uitvoer moeten zien:

Stopping drupal_drupal_1   ... done
Stopping drupal_postgres_1 ... done
Removing drupal_drupal_1   ... done
Removing drupal_postgres_1 ... done
Removing network drupal_default

Je kunt ook de gegevensvolumes verwijderen met het volgende commando:

docker-compose down --volumes

Je zou de volgende uitvoer moeten zien:

Removing network drupal_default
WARNING: Network drupal_default not found.
Removing volume drupal_drupal_modules
Removing volume drupal_drupal_profiles
Removing volume drupal_drupal_themes
Removing volume drupal_drupal_sites
Removing volume drupal_db_data

Conclusie

In de bovenstaande tutorial leerden we hoe je Docker Compose installeert en gebruikt in CentOS 8. Ik hoop dat je voldoende kennis hebt over hoe je het Docker Compose commando kunt gebruiken om de Docker containers te beheren.