Recherche de site Web

Déploiement d’images Docker de pile LAMP (Linux, Apache, MariaDB, PHP)


Environ

L’image LAMP docker de compilation automatisée « linuxconfig/lamp " peut être utilisée comme test et aussi comme environnement de production pour une application PHP dynamique. Il comprend Debian GNU/Linux, le serveur web Apache, MariaDB, un fork développé par la communauté du système de gestion de base de données relationnelle MySQL et le langage de script PHP.

Déploiement

Le déploiement de l’image docker « linuxconfig/lamp " est une procédure assez simple. Commençons par créer un exemple de site web PHP avec un handle de connexion MariaDB :


<?php
$dbh = mysqli_connect('localhost', 'admin', 'pass');
if (!$dbh) {
    die('Could not connect: ' . mysqli_error());
}
echo 'Connected successfully to MariaDB database';
mysqli_close($dbh);
?>

Enregistrez le code ci-dessus dans index.php fichier et dans un nouveau répertoire html. Alternativement, le répertoire html peut contenir l’application PHP souhaitée :


mkdir html
vi html/index.php
ls html/
index.php

À ce stade, nous sommes prêts à déployer l’image docker « linuxconfig/lamp » :


sudo docker run --name=lamp -dP -v $PWD/html:/var/www/html linuxconfig/lamp
c2d1687aef21f8a12a7fbb31bf8cf71c1e5adabf381bc6d70e8804c6663f0bc0

En exécutant la commande ci-dessus, nous avons créé et démarré un nouveau conteneur docker nommé lamp. En même temps, nous avons également monté notre répertoire de développement de site Web html comme répertoire racine d’Apache. Les ports MariaDB et Apache sont désormais liés au port aléatoire d’un système hôte. Les deux ports locaux peuvent maintenant être utilisés pour accéder à la fois aux services MariaDB et Apache :


sudo docker port lamp
80/tcp -> 0.0.0.0:49156
3306/tcp -> 0.0.0.0:49155

Accès Apache

À ce stade, le serveur web Nginx et notre site web sont accessibles via les ports donnés par la commande $sudo docker port lamp. Utilisez la ligne de commande ou votre navigateur pour accéder à http://localhost:49156 URL :


curl -i http://localhost:49156
HTTP/1.1 200 OK
Date: Thu, 21 May 2015 00:39:52 GMT
Server: Apache/2.4.10 (Debian)
Set-Cookie: 6b690bb29883a1fb2d50e5547712a052=5qdo9u7m32e64jncjb7v30p8k3; path=/; HttpOnly
Expires: Mon, 1 Jan 2001 00:00:00 GMT
Last-Modified: Thu, 21 May 2015 00:39:52 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Vary: Accept-Encoding
Transfer-Encoding: chunked
Content-Type: text/html; charset=utf-8


Connected successfully to MariaDB database

Accès MariaDB ( MySQL )

La base de données MariaDB est accessible via l’utilisateur admin et le mot de passe par défaut. Comme précédemment, nous devons d’abord obtenir le numéro de port du système hôte lié à la base de données MariaDB dans une image docker en utilisant la commande $sudo docker port lamp. Ensuite, nous pouvons nous connecter à la base de données :


mysql -uadmin -ppass -h 127.0.0.1 -P49155
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.5.43-0+deb8u1 (Debian)

Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL [(none)]> 

Informations complémentaires

Réinitialiser le mot de passe de l’utilisateur MariaDB

La commande ci-dessous définira un nouveau mot de passe 123pour l’utilisateuradmin :


SET PASSWORD FOR 'admin'@'%' = PASSWORD('123');

Redémarrer la pile de lampes


sudo docker exec lamp service supervisor restart

Accès aux conteneurs

Pendant que le conteneur de votre lampe fonctionne, vous pouvez y accéder par :


sudo docker exec -it lamp /bin/bash
root@733ae4bebf83:/#

Articles connexes: