Maison >développement back-end >tutoriel php >Mise à l'échelle des conteneurs pour les applications PHP à l'aide de Docker Compose, Nginx et MariaDB
Titre : Implémentation d'extensions de conteneurs pour les applications PHP à l'aide de Docker Compose, Nginx et MariaDB
Avec le développement de la technologie des conteneurs, de plus en plus de développeurs commencent à utiliser Docker pour créer et gérer des environnements d'application. Dans cet article, nous prendrons une application PHP comme exemple pour montrer comment utiliser Docker Compose, Nginx et MariaDB pour faire évoluer un environnement conteneurisé.
Docker Compose est un outil officiellement fourni par Docker pour définir et gérer une combinaison de plusieurs conteneurs. Nginx est un serveur HTTP et un serveur proxy inverse hautes performances, tandis que MariaDB est un système de gestion de bases de données relationnelles open source.
Tout d'abord, nous devons créer un fichier appelé docker-compose.yml pour définir et configurer les conteneurs requis. Dans ce fichier, nous utiliserons trois services : web, db et 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
Dans ce fichier, nous définissons trois services. Le service Web utilise la mise en miroir Nginx et mappe le port 80 de l'hôte au port 80 du conteneur. volumes spécifie le mappage du répertoire ./app sur l'hôte au répertoire /var/www/html du conteneur (le code d'application sur l'hôte sera placé dans le répertoire ./app) et le mappage du répertoire ./config/nginx sur le host Mappe vers le répertoire /etc/nginx/conf.d du conteneur (utilisé pour configurer Nginx). depend_on précise que le service web dépend du démarrage du service php. réseaux définit un réseau appelé app-network pour connecter ces trois services au même réseau.
Le service db utilise l'image MariaDB et spécifie certaines variables d'environnement via l'environnement, telles que le mot de passe root, le nom de la base de données, l'utilisateur et le mot de passe. volumes mappe le répertoire ./data sur l'hôte au répertoire /var/lib/mysql du conteneur (pour la persistance des données).
Le service phpmyadmin utilise l'image phpmyadmin, spécifie la connexion au service db via des liens, et spécifie le mappage du port 8080 de l'hôte vers le port 80 du conteneur via les ports. environnement spécifie certaines variables d'environnement, telles que l'hôte de la base de données et le mot de passe root.
Ensuite, nous devons créer les répertoires et fichiers correspondants sur l'hôte. Dans le terminal, exécutez la commande suivante :
mkdir app mkdir config/nginx mkdir data
Ensuite, placez le code de l'application dans le répertoire app et créez un fichier de configuration Nginx nommé default.conf dans le répertoire config/nginx. Ce fichier de configuration sera mappé au répertoire /etc/nginx/conf.d du conteneur.
Maintenant, nous pouvons démarrer le conteneur. Dans le terminal, exécutez la commande suivante :
docker-compose up -d
Cette commande créera et démarrera tous les conteneurs et les exécutera en arrière-plan. Vous pouvez utiliser la commande docker ps pour afficher tous les conteneurs en cours d'exécution.
Enfin, accédez à http://localhost via le navigateur et vous pourrez voir les résultats d'exécution de l'application PHP dans le conteneur. Vous pouvez également accéder à phpMyAdmin sur http://localhost:8080 pour gérer la base de données MariaDB.
À ce stade, nous avons implémenté avec succès des extensions de conteneur pour les applications PHP utilisant Docker Compose, Nginx et MariaDB. Avec Docker Compose, nous pouvons facilement définir et gérer plusieurs conteneurs, tandis que Nginx et MariaDB nous fournissent des services efficaces et fiables.
J'espère que cet article pourra vous aider et vous permettre de mieux comprendre et appliquer la technologie Docker. Bonne programmation !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!