Configurer un serveur de lampe avec Docker

Configurer un serveur de lampe avec Docker
Dans cet article, je vais vous montrer comment utiliser Docker Compose pour créer un serveur de lampes pour le développement Web PHP. Alors, commençons.

Exigences:

Afin de suivre cet article, vous devez faire installer Docker sur votre ordinateur. Linuxhint a beaucoup d'articles que vous pouvez suivre pour installer Docker sur la distribution Linux souhaitée si vous ne l'avez pas déjà installé. Alors, assurez-vous de vérifier Linuxhint.com au cas où vous auriez du mal à installer Docker.

Installation de Docker Compose:

Vous pouvez télécharger très facilement Docker Compose Binary File avec la commande suivante:

$ sudo curl -l "https: // github.com / docker / compose / releases / download / 1.24.1/
docker-compose - $ (uname -s) - $ (uname -m) "-o / usr / local / bin / docker-compose

NOTE: boucle ne peut pas être installé sur votre distribution Linux. Si tel est le cas, vous pouvez installer Curl avec la commande suivante:

Ubuntu / Debian / Linux Mint:

$ sudo apt install curl -y

Centos / Rhel / Fedora:

$ sudo dnf installer curl -y

Une fois composer docker Le fichier binaire est téléchargé, exécutez la commande suivante:

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

Maintenant, vérifiez si composer docker La commande fonctionne comme suit:

$ docker-compose version

Il devrait imprimer les informations de version comme indiqué dans la capture d'écran ci-dessous.

Configuration de Docker Compose pour le projet:

Maintenant, créez un répertoire de projet ~ / docker / lampe (disons) et un html / Répertoire dans le répertoire du projet pour conserver les fichiers du site Web (i.e. PHP, HTML, CSS, JS, etc.) comme suit:

$ mkdir -p ~ / docker / lamp / html

Maintenant, accédez au répertoire du projet ~ / docker / lampe comme suit:

$ cd ~ / docker / lamp

Créer un php.Dockerfile Dans le répertoire du projet ~ / docker / lampe. Il s'agit d'un dockerfile qui permet PHP: 7.4.3-APACH Image de Docker Hub et construit une image Docker personnalisée à partir de celui-ci.

Le contenu du php.Dockerfile est donné ci-dessous.

De PHP: 7.4.3-APACH

COURIR

docker-php-ext-stall mysqli PDO PDO_MYSQL

Maintenant, créez un composer docker.yaml dossier dans le répertoire du projet ~ / docker / lampe et tapez dans les lignes suivantes dans le composer docker.yaml déposer.

Version: "3.7"
prestations de service:
serveur Web:
construire:
dockerfile: php.Dockerfile
contexte: .
redémarrer: toujours
Volumes:
- "./ html /: / var / www / html / "
PORTS:
- "8080: 80"
MySQL-Server:
Image: Mysql: 8.0.19
redémarrer: toujours
environnement:
Mysql_root_password: secret
Volumes:
- mysql-data: / var / lib / mysql
phpmyadmin:
Image: phpmyadmin / phpmyadmin: 5.0.1
redémarrer: toujours
environnement:
PMA_HOST: MySQL-Server
Pma_user: racine
Pma_password: secret
PORTS:
- "5000: 80"
Volumes:
MySql-Data:

Le composer docker.yaml Le fichier doit ressembler à ce qui suit.

Ici, j'ai créé 3 services serveur Web, mysql-server et phpmyadmin.

serveur Web Le service exécutera une image Docker sur mesure telle que définie dans php.Dockerfile.

mysql-server Le service exécutera le mysql: 8.0.19 image (de dockerhub) dans un conteneur docker.

phpmyadmin Le service exécutera le phpmyadmin / phpmyadmin: 5.0.1 image (de dockerhub) dans un autre conteneur docker.

Dans mysql-server service, le Mysql_root_password La variable d'environnement est utilisée pour définir le racine Mot de passe de MySQL.

Dans phpmyadmin service, le PMA_HOST, PMA_USER, PMA_PASSWORD Les variables d'environnement sont utilisées pour définir le nom d'hôte MySQL, le nom d'utilisateur et le mot de passe respectivement que PhpMyAdmin utilisera pour se connecter au serveur de base de données MySQL en cours d'exécution en fonction de mysql-server service.

Dans mysql-server service, tout le contenu du / var / lib / mysql Le répertoire sera enregistré en permanence dans le Mysql-Data volume.'

Dans le serveur Web Service, le port de conteneur 80 (à droite) est mappé au port d'hôte Docker 8080 (gauche).'

Dans le phpmyadmin Service, le port de conteneur 5000 (à droite) est mappé au port d'hôte Docker 80 (gauche).

Créez également un indice.php fichier dans le html / Répertoire pour tester le serveur de lampe.

Le contenu du indice.php dossier dans mon cas,

$ host = "mysql-server";
$ user = "root";
$ pass = "secret";
$ db = "app1";
essayer
$ Conn = new PDO ("MySQL: host = $ host; dbname = $ db", $ utilisateur, $ pass);
$ Conn-> setAttribute (PDO :: att_errMode, PDO :: errMode_Exception);
écho "connecté avec succès";
catch (pDoException $ e)
Echo "La connexion a échoué:" . $ e-> getMessage ();

?>

Enfin, le répertoire du projet ~ / docker / lampe devrait regarder comme suit:

Démarrage du serveur LAMP:

Maintenant, pour démarrer le serveur Web, mysql-server et phpmyadmin services, exécutez la commande suivante:

$ docker-compose up -d

Tous les services doivent commencer en arrière-plan.

Pour voir comment les ports sont mappés, exécutez la commande suivante:

$ docker-compose ps

Comme vous pouvez le voir, pour le serveur Web Service, le port hôte docker 8080 est mappé au port TCP à conteneur 80.

Pour le phpmyadmin Service, le port hôte docker 5000 est mappé au port TCP à conteneur 80.

Trouver l'adresse IP de l'hôte Docker:

Si vous souhaitez accéder au serveur LAMP à partir d'autres ordinateurs de votre réseau, vous devez connaître l'adresse IP de votre hôte Docker.

Pour trouver l'adresse IP de votre hôte Docker, exécutez la commande suivante:

$ ip

Dans mon cas, l'adresse IP de mon hôte docker 192.168.20.160. Ce sera différent pour vous. Alors, assurez-vous de le remplacer par le vôtre à partir de maintenant.

Test du serveur de lampe:

Maintenant, vous pouvez accéder à PhpMyAdmin 5 et au serveur Web à partir d'un navigateur Web.

Pour accéder à PhpMyAdmin 5, ouvrez un navigateur Web et visitez http: // localhost: 5000 de votre hôte docker ou visitez http: // 192.168.20.160: 5000 de tout autre ordinateur sur le réseau.

phpmyadmin 5 devrait se charger dans votre navigateur Web.

Maintenant, créez un app1 Base de données MySQL de PhpMyAdmin.

Maintenant, visitez http: // localhost: 8080 de votre hôte docker ou http: // 192.168.20.160: 8080 de tout autre ordinateur de votre réseau pour accéder au serveur Web.

Tu devrais voir le Connecté avec succès message. Cela signifie que le PHP fonctionne et le serveur de base de données MySQL est accessible à partir du serveur Web récipient. Ainsi, techniquement, le serveur de lampe est entièrement fonctionnel.

Arrêt du serveur LAMP:

Pour arrêter le serveur Web, mysql-server et phpmyadmin services, exécutez la commande suivante:

$ docker-compose

Le serveur Web, mysql-server et phpmyadmin Les services doivent être arrêtés.

Nettoyage des données du serveur MySQL:

Si vous souhaitez supprimer toutes les données et paramètres de la base de données MySQL, vous devez supprimer Mysql-Data volume.

Vous pouvez trouver le nom réel du volume avec la commande suivante:

$ volume docker ls

Vous pouvez supprimer le volume lamp_mysql-data avec la commande suivante:

$ docker volume rm lamp_mysql-data

Donc, c'est ainsi que vous configurez un serveur de lampe avec Docker. Merci d'avoir lu cet article.

Comme vous pouvez le voir, le volume à supprimer est lamp_mysql-data.