Heim  >  Artikel  >  Backend-Entwicklung  >  Containerskalierung für PHP-Anwendungen mit Docker Compose, Nginx und MariaDB

Containerskalierung für PHP-Anwendungen mit Docker Compose, Nginx und MariaDB

WBOY
WBOYOriginal
2023-10-12 11:06:12860Durchsuche

使用Docker Compose、Nginx和MariaDB实现PHP应用程序的容器扩展

Titel: Implementierung von Containererweiterungen für PHP-Anwendungen mit Docker Compose, Nginx und MariaDB

Mit der Entwicklung der Containertechnologie beginnen immer mehr Entwickler, Docker zum Erstellen und Verwalten von Anwendungsumgebungen zu verwenden. In diesem Artikel nehmen wir eine PHP-Anwendung als Beispiel, um zu demonstrieren, wie Docker Compose, Nginx und MariaDB zum Skalieren einer Containerumgebung verwendet werden.

Docker Compose ist ein offiziell von Docker bereitgestelltes Tool zum Definieren und Verwalten einer Kombination mehrerer Container. Nginx ist ein leistungsstarker HTTP-Server und Reverse-Proxy-Server, während MariaDB ein relationales Open-Source-Datenbankverwaltungssystem ist.

Zuerst müssen wir eine Datei namens docker-compose.yml erstellen, um die erforderlichen Container zu definieren und zu konfigurieren. In dieser Datei verwenden wir drei Dienste: web, db und phpmyadmin.

version: '3'
services:
  web:
    image: nginx:latest
    ports:
      - "80:80"
    volumes:
      - ./app:/var/www/html
      - ./config/nginx:/etc/nginx/conf.d
    depends_on:
      - php
    networks:
      - app-network
  
  db:
    image: mariadb:latest
    environment:
      - MYSQL_ROOT_PASSWORD=password
      - MYSQL_DATABASE=app_database
      - MYSQL_USER=app_user
      - MYSQL_PASSWORD=password
    volumes:
      - ./data:/var/lib/mysql
    networks:
      - app-network
  
  phpmyadmin:
    image: phpmyadmin/phpmyadmin:latest
    links:
      - db:db
    ports:
      - "8080:80"
    environment:
      - PMA_HOST=db
      - MYSQL_ROOT_PASSWORD=password
    networks:
      - app-network

networks:
  app-network:
    driver: bridge

In dieser Datei definieren wir drei Dienste. Der Webdienst nutzt Nginx-Spiegelung und ordnet Port 80 des Hosts Port 80 des Containers zu. volumes gibt die Zuordnung des ./app-Verzeichnisses auf dem Host zum /var/www/html-Verzeichnis des Containers an (der Anwendungscode auf dem Host wird im ./app-Verzeichnis abgelegt) und die Zuordnung des ./config/nginx-Verzeichnisses auf dem host Map zum Verzeichnis /etc/nginx/conf.d des Containers (wird zur Konfiguration von Nginx verwendet). depend_on gibt an, dass der Webdienst vom Start des PHP-Dienstes abhängt. Netzwerke definieren ein Netzwerk namens App-Netzwerk, um diese drei Dienste mit demselben Netzwerk zu verbinden.

Der DB-Dienst verwendet das MariaDB-Image und gibt einige Umgebungsvariablen über die Umgebung an, z. B. Root-Passwort, Datenbankname, Benutzer und Passwort. volumes ordnet das Verzeichnis ./data auf dem Host dem Verzeichnis /var/lib/mysql des Containers zu (zur Datenpersistenz).

Der phpmyadmin-Dienst verwendet das phpmyadmin-Image und gibt die Verbindung zum Datenbankdienst über Links an und gibt die Zuordnung des 8080-Ports des Hosts zum Port 80 des Containers über Ports an. Die Umgebung gibt einige Umgebungsvariablen an, z. B. den Datenbankhost und das Root-Passwort.

Als nächstes müssen wir die entsprechenden Verzeichnisse und Dateien auf dem Host erstellen. Führen Sie im Terminal den folgenden Befehl aus:

mkdir app
mkdir config/nginx
mkdir data

Platzieren Sie dann den Code der Anwendung im App-Verzeichnis, erstellen Sie eine Nginx-Konfigurationsdatei mit dem Namen default.conf und platzieren Sie sie im Verzeichnis config/nginx. Diese Konfigurationsdatei wird dem Verzeichnis /etc/nginx/conf.d des Containers zugeordnet.

Jetzt können wir den Container starten. Führen Sie im Terminal den folgenden Befehl aus:

docker-compose up -d

Dieser Befehl erstellt und startet alle Container und führt sie im Hintergrund aus. Mit dem Docker-Befehl ps können Sie alle laufenden Container anzeigen.

Besuchen Sie abschließend http://localhost über den Browser und Sie können die laufenden Ergebnisse der PHP-Anwendung im Container sehen. Sie können auch unter http://localhost:8080 auf phpMyAdmin zugreifen, um die MariaDB-Datenbank zu verwalten.

Zu diesem Zeitpunkt haben wir erfolgreich Containererweiterungen für PHP-Anwendungen mit Docker Compose, Nginx und MariaDB implementiert. Mit Docker Compose können wir problemlos mehrere Container definieren und verwalten, während Nginx und MariaDB uns effiziente und zuverlässige Dienste bieten.

Ich hoffe, dieser Artikel kann Ihnen helfen und es Ihnen ermöglichen, die Docker-Technologie besser zu verstehen und anzuwenden. Viel Spaß beim Programmieren!

Das obige ist der detaillierte Inhalt vonContainerskalierung für PHP-Anwendungen mit Docker Compose, Nginx und MariaDB. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn