Recherche de site Web

Comment installer Apache dans un conteneur Docker sous Linux


Si vous êtes un administrateur système Linux qui fournit une assistance aux développeurs, il est probable que vous ayez entendu parler de Docker. Si ce n’est pas le cas, cette solution logicielle vous facilitera la vie dès aujourd’hui en vous aidant à réduire les coûts d’exploitation et à accélérer les déploiements – entre autres avantages.

Mais ce n’est pas magique. Docker, en tant que plate-forme, exploite les conteneurs : les packages d'une application ainsi que tous les outils dont elle a besoin pour s'exécuter pour éliminer les différences entre les environnements.

En d’autres termes, les logiciels conteneurisés fonctionneront et pourront être gérés de manière cohérente, quel que soit l’endroit où ils sont installés. De plus, les conteneurs sont beaucoup plus faciles à configurer, démarrer, arrêter et entretenir que les bonnes vieilles machines virtuelles.

Si vous souhaitez en savoir plus sur les différences entre ces deux technologies, le site officiel de Docker fournit une excellente explication.

À titre d'illustration, dans cet article, nous expliquerons comment installer Docker sur CentOS/RHEL, Rocky/Alma Linux et Debian/ Ubuntu et lancez un conteneur Apache 2.4 à partir de Docker Hub.

Nous l’utiliserons ensuite pour servir une simple page Web à partir de notre répertoire personnel – le tout sans avoir besoin d’installer un serveur Web sur notre hébergeur.

Installer Docker sur Linux

Pour commencer, installons Docker à l'aide de la commande curl suivante. Cela téléchargera et exécutera un script shell qui ajoutera le référentiel Docker à notre système et installera le package.

curl -fsSL https://get.docker.com | sh

Ensuite, utilisez la commande systemctl pour démarrer le service principal Docker, activez-le pour démarrer lors des redémarrages et vérifiez son état.

systemctl start docker
systemctl enable docker
systemctl status docker

À ce stade, nous pouvons simplement exécuter.

docker

pour afficher la liste des commandes disponibles ou pour obtenir de l'aide.

docker COMMAND --help
docker ps --help

nous dira comment lister les conteneurs présents sur notre système, alors que

docker run --help

imprimera toutes les options que nous pouvons utiliser pour manipuler un conteneur.

Configuration d'un conteneur Apache

L'un des aspects étonnants de l'écosystème Docker est qu'il existe des dizaines de conteneurs standards que vous pouvez facilement télécharger et utiliser.

Dans l'exemple suivant, nous allons instancier un conteneur Apache 2.4 nommé tecmint-web, détaché du terminal courant. Nous utiliserons une image appelée httpd:2.4 de Docker Hub.

Notre plan est que les requêtes adressées à notre adresse IP publique sur le port 8080 soient redirigées vers le port 80 du conteneur. De plus, au lieu de diffuser le contenu du conteneur lui-même, nous diffuserons une simple page Web à partir de /home/user/website.

Nous faisons cela en mappant /home/user/website/ sur /usr/local/apache2/htdocs/ sur le conteneur. Notez que vous devrez utiliser sudo ou vous connecter en tant que root pour continuer, et n'omettez pas les barres obliques à la fin de chaque répertoire.

sudo docker run -dit --name tecmint-web -p 8080:80 -v /home/user/website/:/usr/local/apache2/htdocs/ httpd:2.4

À ce stade, notre conteneur Apache devrait être opérationnel.

sudo docker ps

Créons maintenant une simple page Web nommée docker.html dans le répertoire /home/user/website.

vi /home/user/website/docker.html

Ajoutez l’exemple de contenu HTML suivant au fichier.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Learn Docker at linux-console.net</title>
</head>
<body>
    <h1>Learn Docker With Us</h1>   
</body>
</html>

Ensuite, pointez votre navigateur sur Server-IP:8080/docker.html (où Server-IP est l'adresse IP publique de votre hôte). La page que nous avons créée précédemment devrait vous être présentée.

Si vous le souhaitez, vous pouvez maintenant arrêter le conteneur.

sudo docker stop tecmint-web

et supprimez-le :

sudo docker rm tecmint-web

Pour terminer le nettoyage, vous souhaiterez peut-être supprimer l'image qui a été utilisée dans le conteneur (omettez cette étape si vous envisagez de créer prochainement d'autres conteneurs Apache 2.4).

sudo docker image remove httpd:2.4

Notez que dans toutes les étapes ci-dessus, nous n'avons jamais eu à installer le serveur Web sur notre hôte.

Résumé

Dans cet article, nous avons expliqué comment installer Docker et manipuler un conteneur. Malheureusement, ce ne sont là que les bases : il existe des cours entiers, des livres et des examens de certification qui couvrent les Dockers (et les conteneurs en général) de manière plus approfondie.

Si vous souhaitez en savoir plus sur Docker, nous avons déjà couvert une série de 3 articles expliquant comment installer Docker, exécuter des applications dans des conteneurs et créer automatiquement des images Docker avec Dockerfile.

  • Installez Docker et apprenez la manipulation de base des conteneurs dans CentOS et RHEL
  • Comment déployer et exécuter des applications dans des conteneurs Docker sur CentOS/RHEL
  • Créez et configurez automatiquement des images Docker avec Dockerfile sur CentOS/RHEL
  • Comment supprimer des images, des conteneurs et des volumes Docker

Considérez cela comme votre point de départ et faites-nous savoir si vous avez des questions ou des commentaires – nous sommes impatients de vous entendre !