nouvelles
Serverspace a ajouté un nouveau Rocky Linux OS
VB
13 septembre 2023
Mise à jour en septembre 13, 2023

Docker pour les débutants

Docker QFP

In un des articles précédents, nous avons exploré le processus de gestion d'un Docker conteneur à partir d’une image. DockerLe concept principal de s'articule autour du fait que chaque processus individuel dispose de son propre conteneur dédié avec l'environnement nécessaire adapté à ses besoins spécifiques. Cependant, lorsqu’il s’agit d’applications complexes, un défi se pose.
Considérons une application Web qui nécessite une base de données, un serveur Web et potentiellement un interpréteur PHP. Cela implique déjà la gestion de trois conteneurs distincts, et il devient peu pratique de les configurer et de les exécuter manuellement individuellement. Pour résoudre ce problème, le "docker-compose" a été introduit. Il permet la gestion des groupes de conteneurs, facilitant leur création, configuration, suppression avec une seule commande. Ce tutoriel vise à présenter Docker aux débutants, en se concentrant sur l'utilisation pratique de docker-composer.

Docker-composer la configuration

Tout d'abord, vous devez installer l'ensemble de packages « de base » :

apt-get update && apt-get install -y ca-certificates curl gnupg && sudo install -m 0755 -d /etc/apt/keyrings && curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg && chmod a+r /etc/apt/keyrings/docker.gpg

pic1

echo \ "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

pic2

apt-get update && apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y

pic3

La suite du processus est très simple, il suffit de télécharger le fichier précompilé :

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

pic4

Accordez ensuite les autorisations d'exécution :

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

pic2

Ensuite, vérifiez la version du package :

docker-compose --version

pic3

Créer un projet

Si vous avez travaillé ou vu des projets utilisant Docker, vous avez peut-être remarqué qu'il existe un docker-compose dans le dossier du projet.yaml". C'est dans ce fichier que sont configurés les conteneurs qui doivent être créés pour votre projet. Ils seront automatiquement créés à l'aide de docker-composer. Le fichier utilise la syntaxe YAML et doit contenir les données suivantes :

version: 'file_version'
networks: 'used_networks'
volumes: 'used_storages'
services: 'used_containers'

La version indique la version de syntaxe du fichier, différentes versions ont différents mots-clés disponibles, ce qui est fait pour une compatibilité ascendante. Nous utiliserons la version 3.5. Ensuite, nous devons lister les volumes, les réseaux et les conteneurs eux-mêmes.
La syntaxe YAML est similaire à JSON, il existe des paires clé-valeur séparées par des deux-points, mais ici la valeur peut être complètement vide, peut contenir d'autres clés, et il peut également s'agir d'un tableau de valeurs, auquel cas chaque élément du tableau commence par un tiret "-". Mais contrairement à JSON, l'indentation est ici très importante pour montrer l'imbrication des valeurs, alors ne les manquez pas.
Créons un dossier appelé 'serverspace-docker' et créez un fichier appelé 'docker-compose.yaml' à l'intérieur :

mkdir /opt/serverspace-docker && nano /opt/docker-compose.yaml

Et mettez ce code à l'intérieur :

version: '3.5'
services: docker-nginx: image: nginx

pic5

Il suffit d'exécuter le conteneur.

Exécution de conteneurs

Pour démarrer un groupe de conteneurs configurés dans docker-compose.yaml, vous devez accéder au dossier où se trouve ce fichier de configuration et exécuter la commande docker-composer là. Par exemple:

cd /opt/serverspace-docker/
docker-compose up

pic9

Après cela, les conteneurs seront lancés, leurs flux de sortie seront fusionnés en un seul et vous verrez des informations dans le terminal. Pour arrêter les conteneurs, appuyez simplement sur Ctrl+C. Si vous souhaitez exécuter les conteneurs en arrière-plan, utilisez le -d option:

docker-compose up -d

pic10

Pour arrêter les conteneurs exécutés en arrière-plan, vous pouvez utiliser le docker-composer l'arrêt commander:

pic11

La docker-composer La commande arrête non seulement tous les conteneurs en cours d'exécution, mais les supprime également :

pic12

Expédition de ports à conteneurs

Le conteneur fonctionne, mais il nous est peu utile pour le moment. Avec Docker, nous pouvons transférer le port 80 du conteneur vers le système d'exploitation hôte et y accéder. Pour ce faire, utilisez le 'ports"directive. La syntaxe est la suivante :

ports:
- external_port:internal_port

Alors, transférons le port 80 vers 8098

pic13

En conséquence, nous pouvons ouvrir nginx sur le port 'externe' :

pic14

Dossiers de montage

Pour monter un stockage externe ou des dossiers hôtes sur le conteneur, la section « volumes » est utilisée. La syntaxe est très similaire à celle utilisée avec les ports :

volumes:
- /path/to/external/folder:/path/to/internal/folder

Créons un fichier appelé "index.html" dans le dossier du projet actuel et montons ce dossier à la place du "/usr/share/ du conteneurnginx/html/" dossier :

echo "You're the best!" > index.html

pic15

Et ajoutez la directive de montage de dossier au docker-composer le fichier :

pic16

Après avoir redémarré le conteneur, vous verrez votre propre page dans le navigateur.

pic17

Configuration des volumes

Nous pouvons monter non seulement des dossiers externes mais aussi des volumes créés dans Docker au conteneur. Pour ce faire, vous devez d'abord ajouter le volume à la section principale "volumes". Par exemple, "serverspace-vl". La plupart des applications Web nécessitent une base de données, telle que MySQL. Ajoutons un autre conteneur pour cette base de données et ajoutons-y notre volume. Le volume est ajouté de la même manière qu'un dossier externe, sauf qu'au lieu d'un dossier, le nom du volume est spécifié. Ajoutons MySQL à notre configuration :


docker-mysql:
image: mysql
volumes:
- serverspace-vl:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=VeryStr0ngPassword
- MYSQL_DATABASE=database
- MYSQL_USER=user
- MYSQL_PASSWORD=AnotherPassw0rd

Ici, nous avons également ajouté la section « environnement » où nous définissons les variables d'environnement pour le conteneur. Ils sont nécessaires pour spécifier le nom de la base de données par défaut et le mot de passe root.

pic18

 

Configuration des réseaux

Les conteneurs doivent communiquer entre eux. Nous avons déjà Nginx et MySQL, et ils n'ont pas encore besoin de communiquer entre eux. Mais une fois que nous aurons un conteneur pour PhpMyAdmin, qui doit accéder à MariaDB, la situation changera. Les réseaux virtuels sont utilisés pour la communication entre les conteneurs et peuvent être ajoutés de la même manière aux volumes. Tout d'abord, ajoutez le réseau au principal "réseaux" section:

networks:
serverspace-network:

Ensuite, ajoutez ce réseau pour chaque conteneur nécessitant un accès « extérieur ». Par la suite, les conteneurs seront disponibles sur le réseau sous leur nom. Par exemple, ajoutons PhpMyAdmin et donnons-lui accès à la base de données :


docker-phpmyadmin:
image: phpmyadmin/phpmyadmin:latest
ports:
- "8099:80"
environment:
- PMA_HOST=docker-mysql
networks:
- serverspace-network

Ici, dans la variable PMA_HOST, on fait référence au "docker-mysql" hôte, qui est accessible grâce au réseau partagé entre ces conteneurs. De même, dans le "docker-mysql" conteneur, notre conteneur PhpMyAdmin est accessible en tant que "docker-phpmyadmin". Vous pouvez ouvrir l'adresse http://docker-server:8099 et authentifiez-vous pour vérifier si la base de données fonctionne.

pic19

Connexion à un conteneur

Avec docker-compose, vous pouvez vous connecter à n’importe quel conteneur du groupe. Utilisez simplement le exec commande. Par exemple, démarrez le projet en arrière-plan :

docker-compose up -d

Ensuite, connectons-nous au conteneur avec Nginx:

docker-compose exec docker-nginx /bin/bash

pic20

Conclusions

Dans cet article, nous avons couvert l'utilisation de Docker pour les débutants. Nous avons également décrit comment utiliser quelques-uns docker conteneurs en tant que complexe, une unité. Le sujet est assez vaste et complexe, mais très intéressant. En déployant le projet sur une machine de cette manière, vous pouvez le déployer partout où vous en avez besoin en y copiant simplement la configuration. C'est pourquoi cette technologie a acquis une telle popularité auprès des développeurs et des DevOps.

Voter:
5 sur 5
Note moyenne : 5
Noté par : 1
1101 CT Amsterdam Pays-Bas, Herikerbergweg 292
+31 20 262-58-98
700 300
ITGLOBAL.COM NL
700 300

Vous pourriez aussi aimer...

Nous utilisons des cookies pour rendre votre expérience sur le Serverspace meilleur. En poursuivant votre navigation sur notre site, vous acceptez nos
Utilisation des cookies et Politique de confidentialité.