Les Pensées De Djin

Les trucs qui me servent !

#Informatique, Debian

Debian - Site Web et accès FTP avec Docker

30 juillet 2016 Rédigé par Djin

Salut,

Nous avons vu récemment l'installation de Docker sur Debian.
Aujourd'hui nous allons voir une application simple : un site web qui supporte le PHP et un accès FTP pour gérer les fichiers. 

Nous partons donc du principe que Docker est installé et fonctionne.
Sinon rendez-vous sur cet article.

      1 - Serveur Web/PHP.

Nous allons commencer par charger l'image d'apache depuis le Hub de Docker :

docker pull apotek/php-apache

 

On peut lister les images de notre serveur avec cette commande :

docker images

 

Et voici le résultat :

REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
fauria/vsftpd              latest               011f0e7012eb      11 months ago       345.4 MB

 

Un fois le téléchargement terminé, on peut lancer le conteneur :

docker run -d --name apache8080-80 -p 8080:80 -v /home/siteweb/:/var/www/html apotek/php-apache

 

L'explication : 
   run : pour créer un conteneur et l'exécuter.
   -d : Pour l'exécuter le conteneur en tâche de fond.
   --name : On nomme le conteneur. Si ce paramètre n'est pas présent, un nom est généré automatiquement.
   -p : On indique le port à rediriger vers le conteneur. On attaquera donc notre serveur web sur le port 8080 qui sera redirigé vers le port 80 du conteneur.
   -v : pour mapper un répertoire local avec un répertoire du conteneur - ce qui nous permettra de modifier les fichiers de notre serveur web.
   apotek/php-apache : On appelle l'image pour créer notre conteneur.

Pour information, si nous n'avions pas téléchargé l'image, lancer cette commande l'aurait chargée toute seule.

Nous allons donc vérifier le fonctionnement de notre serveur web avec un navigateur :

http://ip_de_votre_serveur_hôte:8080

 

Normalement, si tout se passe bien, vous devriez avoir un beau "It Work"

Pour vérifier le mappage, vous pouvez créer un fichier "index.php" et coller un bout de PHP pour tester dans le même temps le serveur PHP :

nano /home/siteweb/index.php

 

<?php
      phpinfo();
?>

 

Un petit rafraîchissement de la page web et vous devriez voir les informations de configuration de PHP.

Nous avons un serveur web/PHP fonctionnel !

      2 - Serveur SFTP.

Pourquoi SFTP et pas FTP, et bien simplement par sécurité. Je vous invite à faire une petit recherche sur Google pour plus d'explications mais dans le principe :
FTP = non sécurisé
SFTP = Crypté du mot de passe au fichier qu'on fait transiter.

Sur le même principe que le serveur web, il faut télécharger l'image et lancer le conteneur.
Cette fois, comme vu plus haut, nous allons le faire en une seule fois :

 docker run -d --name sftp -v /home/siteweb/:/home/foo/share -p 2222:22 atmoz/sftp foo:123:1000:1001

 

L'explication :
   run, -d, --name, -p, et -v, nous avons déjà vu.
   Après le nom de l'image, nous allons retrouver la commande à passer au conteneur, soit "foo:123:1000:1001" qui correspond dans notre cas au nom du compte pour se connecter, à son mot de passe, à l'UID du compte et au GID du groupe.

Attention, l'UID/GID du compte et du groupe indiqués correspondent aux UID de comptes et groupes locaux de l'hôte. Cela sous-entend que le compte qui correspond à l'UID 1000 à les droits de lecture et d'écriture sur le répertoire /home/siteweb .

Pour retrouver l'UID d'un compte, on fait : 

id nom_du_user

 

Vous voilà avec un serveur web supportant PHP, un serveur SFTP et le tout avec docker.

Maintenant, rien ne vous empêche de monter un autre conteneur basé sur l'image d'Apache mais via un autre port.
C'est la facilité de docker !

 


Information sur Djin, l'auteur de l'article

L'informatique est d'abord une passion avant d'être mon métier.

3 commentaires

#1 

Ce post m'a beaucoup aidé pour monter mon serveur. J'ai créé un docker-compose.yml pour faciliter tout ca : https://github.com/mikaoelitiana/apache-sftp Commentaire de Mika Andrianarijaona

Répondre

#2 

Erreur a cette ligne:

docker run -d --name -v /home/siteweb/:/home/foo/share -p 2222:22 atmoz/sftp foo:123:1000:1001

ne pas oubliez de renseignez le nom apres le --name ;)

ex:

docker run -d --name sftp -v /home/siteweb/:/home/foo/share -p 2222:22 atmoz/sftp foo:123:1000:1001 Commentaire de DarDuckk

Répondre

#3 

Salut,

Merci, c'est corrigé ! Commentaire de Djin

Répondre

Fil RSS des commentaires de cet article

Écrire un commentaire