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-APACHCOURIR
docker-php-ext-stall mysqli PDO PDO_MYSQLMaintenant, 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"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";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.