KST
Une Page dédiée aux amateurs des nouvelles technologies de l'information et de la communication!!
Un drone qui s'adapte selon l'état de l'environnement et peut toute fois décoller en cas de besoin
26/05/2020
une
Il s'agit d'une procédure pas à pas sur la façon de créer une pile LAMP dans Docker. C'était un projet de recherche amusant pour voir comment créer une boîte de développement pour mon travail à l'aide de Docker et Docker Compose (l'outil de Docker pour exécuter une application qui nécessite plusieurs conteneurs).
Considérez les conteneurs Docker comme de minuscules serveurs qui exécutent une seule chose spécifique. Habituellement, dans un serveur, vous auriez une instance avec un tas de programmes (Apache, PHP, MySQL) installés et en cours d'exécution. Dans Docker, chacun de ces programmes est séparé sur son propre petit serveur qui partage les ressources avec les autres conteneurs sur son ordinateur / serveur hôte. Dans ce cas, nous aurions 3 conteneurs
Apache
PHP
MySQL
Cependant pour cet exemple, j'ai combiné les programmes Apache / PHP ensemble. D'après ce que j'ai vu, il n'y a pas de méthode de «docker des meilleures pratiques» et vous pouvez construire les choses de manière différente. C'est donc à vous de décider comment vous voulez construire vos conteneurs (petits serveurs). Gardez à l'esprit que plus votre contenant est petit, mieux c'est. Donc, si vous avez des programmes dont vous n'êtes pas sûr qu'ils devraient être ensemble, suivez mon petit dicton:
En cas de doute, divisez-les.
Les DockerFiles
DockerFiles sont des fichiers que vous pouvez créer une image Docker. Considérez ce fichier comme un script que vous exécuteriez pour configurer votre environnement sur une VirtualBox après avoir installé le système d'exploitation hôte (Ubuntu, CentOS, etc.), puis exporté l'appliance pour que d'autres puissent l'utiliser. Les images Docker sont essentiellement le même concept. Vous créez une image pour votre petit serveur aka conteneur .
DevBox.DockerFile
Commande FROM
La commande FROM indique au fichier docker les images à utiliser comme image de base. Vous ne commencez généralement pas à partir de zéro. Je suis sûr qu'il y a des moments où vous le pouvez, mais ce sont probablement des circonstances assez rares.
Dans le fichier ci-dessus, vous commencez avec une image de base à partir de laquelle travailler. Dans ce cas, nous construisons à partir de la dernière version d'ubuntu.
La syntaxe des images dans Docker
nom_référentiel: nom_tag
Dans cet exemple, son ubuntu: latest . La dernière balise est utilisée dans la plupart des images pour récupérer la version la plus récente de l'image.
Commande ENV
ENV DEBIAN_FRONTEND = non interactif
La ligne ci-dessus vous permet de définir une variable d'environnement dans vos nouvelles images. Ce serait la même chose que de définir une variable d'environnement lorsque SSH est connecté à un serveur. Dans ce cas, cela fait en sorte que lorsque nous installons d'autres logiciels et qu'il y a une invite qui nécessite une intervention de l'utilisateur, elle sera contournée et n'entravera pas l'installation du logiciel. J'avais mon échec de construction d'image sur une extension php qui avait besoin d'une entrée. Cela m'a permis de contourner cela.
Commande RUN
Les commandes RUN sont comme si vous tapiez une commande dans votre fenêtre de terminal. Dans ce fichier, j'installais le noyau php et ses extensions correspondantes.
Commande COPY
La commande COPY copie un fichier d'un répertoire local de votre ordinateur vers le système de fichiers du conteneur. Considérez-la comme une commande scp sur un serveur normal.
Syntaxe de la commande de copie
/path/to/local/file.txt /path/to/container/filepath/file.txt
Commande CMD
Le but principal d'un CMD est de fournir des valeurs par défaut pour un conteneur en cours d'exécution. Dans ce cas, nous voulons lancer apache et l'exécuter au premier plan afin que le conteneur reste persistant et actif. Contrairement à un serveur normal qui fonctionnera 24h / 24 et 7j / 7 jusqu'à sa mise hors tension manuelle, un conteneur se tournera automatiquement une fois qu'il aura fini de fonctionner. En exécutant Apache au premier plan, cela empêche le conteneur de s'éteindre.
Commande EXPOSE
La commande Exposer autorise le port que vous souhaitez ouvrir EN INTERNE , dans le réseau des conteneurs Docker, mais pas sur le réseau extérieur.
MySQL.DockerFile
Construire l'image
Maintenant que nous avons les DockerFiles prêts à l'emploi, nous pouvons construire les images dans un conteneur réel de différentes manières. La façon dont je vais vous montrer est d'utiliser un outil CLI appelé Docker Compose.
Docker Compose vous permet d'écrire un fichier YAML pour faire tourner plusieurs conteneurs à la fois afin que vous n'écriviez pas une tonne de commandes docker dans votre fenêtre de terminal. Vous effectuez également tout ce travail en écrivant un script bash avec les commandes docker, mais l'utilisation de Docker Composer facilite la maintenance du script.
La commande build
Pour exécuter une génération à l'aide de docker-compose (dans le même répertoire de fichiers que votre fichier docker-composer.yml)
construction de docker-compose
sans utiliser aucun autre indicateur, le programme docker-compose recherchera le nom de fichier .yml par défaut de docker-compose.yml. Si vous nommez votre .yml un nom différent, vous
utiliseriez le -f dans la commande
docker-compose -f /path/to/docker-compose.yml/file build
Le docker-compose.yml
Voici une ventilation de ce que fait chaque ligne du fichier YAML
Plus d'informations sur Docker Compose File
Composer la référence de la version 3 du fichier
Référence et directives Ces rubriques décrivent la version 3 du format de fichier Compose. Ceci est la dernière version…
docs.docker.com
Comment allumer les conteneurs
Lorsque vous êtes prêt à démarrer vos conteneurs (et après avoir construit les conteneurs), vous pouvez exécuter la commande (dans le même répertoire de fichiers que votre fichier
docker-compose.yml)
docker-compositeur
Comme la commande ci-dessus lorsque vous créez vos images, vous pouvez également spécifier le nom de votre fichier docker-compose.yml en utilisant l'indicateur -f dans votre commande.........
docker-compose -f /path/to/docker-compose.yml/file build........
Plus d'informations sur Docker Compose
Présentation de Docker Compose
Vous recherchez une référence de fichier Compose? Trouvez la dernière version ici. Compose est un outil pour définir et exécuter…
docs.docker.com
Comment se connecter à un conteneur MySQL avec PHP
Pour vous connecter à une base de données MySQL depuis PHP, vous utilisez simplement le nom des conteneurs dans votre connexion db
Exemple de syntaxe........
mysqli_connect ("container_name_here", "my_user", "my_password", "my_db");
Donc, si nous utilisions le nom de notre conteneur MySQL d'en haut, cela ressemblerait à ceci: (C'est le nom que nous avons défini dans notre fichier docker-compose.yml plus tôt)
mysqli_connect (" devmysql ", "my_user", "my_password", "my_db");.......
Des conseils de dépannage
Problème de connexion à MySQL
Ran into Lost connection to MySQL server at ' reading initial communication packet', erreur système: 0
Cela était dû à une ligne d'adresse de
liaison dans /etc/mysql/mysql/mysql.conf.d/mysqld.cnf
n'autorisant pas les connexions de n'importe où pour le conteneur mysql. Je l'ai commenté et j'ai redémarré les conteneurs et j'ai pu accéder à MySQL avec mon client de base de données (Sequel Pro sur Mac)
Dernières pensées
Tout en installant toutes les dépendances de vos applications Web (php-curl, php-json, etc.) et en vous assurant que votre Apache est en cours d'exécution et que votre conteneur MySQL fonctionne également; vous devriez pouvoir visiter localhost et voir votre système fonctionner. Si vous en avez besoin, vous pouvez toujours pirater votre fichier / etc / hosts pour qu'un point de nom de domaine pointe vers votre hôte local (127.0.0.1). Encore une fois, vous seul savez ce qui doit être défini dans votre environnement pour que votre application fonctionne.
Toutes les choses que vous exécuteriez dans le terminal pour faire fonctionner votre application Web peuvent être placées dans votre DockerFile, de cette façon, elles peuvent être exécutées automatiquement pendant votre processus de construction.
Vous utilisez le fichier docker-compose.yml pour déclencher le démarrage de tous vos conteneurs. Considérez-le comme un script qui allume tous vos serveurs et les configure pour communiquer entre eux.
J'espère que ce didacticiel simple et rapide vous permettra d'exécuter une simple boîte de pile LAMP. De là, vous pouvez faire des tonnes de constructions plus complexes et même pousser votre image personnalisée vers des dépôts publics pour les autres. Consultez Docker Hub pour voir une liste d'images que les gens ont publiées pour que vous puissiez les utiliser.
Cliquez ici pour réclamer votre Listage Commercial.
Type
Contacter l'entreprise
Site Web
Adresse
Conakry