Skip to content

Installer et utiliser Docker

Bernard edited this page Feb 24, 2018 · 50 revisions

Utiliser le menu d'installation assistée

Le script du menu peut être placé dans le répertoire de votre choix.
Charger puis démarrer le script du menu.
cd /home/votre-utilisateur/
curl https://raw.githubusercontent.com/ZerooCool/Linux-Search-Engine-Optimisation/master/installation/00-menu.sh > 00-menu.sh
Se connecter en super utilisateur : su avec le mot de passe de l'utilisateur root : OptimisationSEO
Lancer le menu : sh 00-menu.sh

Le script du menu va créer un dossier installeur dans le répertoire utilisateur.
Choisir l'option souhaitée dans le menu affiché.

1- Installer Docker

Installer Docker pour pouvoir travailler avec des images et des conteneurs.
Utiliser l'option 1 du menu pour une installation assistée de Docker.
Sinon, charger puis exécuter le script d'installation de Docker.
cd /home/votre-utilisateur/
curl https://raw.githubusercontent.com/ZerooCool/Linux-Search-Engine-Optimisation/master/installation/1-installer-docker.sh > 1-installer-docker.sh
Se connecter en super utilisateur : su avec le mot de passe de l'utilisateur root : OptimisationSEO
Lancer l'installation de Docker sur l'hôte Debian Stretch 9 : sh 1-installer-docker.sh

Vérifier si des conteneurs existent

Si vous n'avez pas importé l'image de Debian, aucun conteneur ne devrait être présent.
Vérifier si des conteneurs présents sont arrêtés : docker ps -a
Vérifier si des conteneurs présents sont démarrés : docker ps

Stopper et supprimer des conteneurs

Se connecter en super utilisateur : su avec le mot de passe de l'utilisateur root : OptimisationSEO
Stopper tous les conteneurs avec la commande : docker stop $(docker ps -a -q)
Supprimer tous les conteneurs existants avec la commande : docker rm $(docker ps -a -q)

Supprimer toutes les images existantes

Supprimer toutes les images existantes avec la commande docker rmi $(docker images -q)

2- Supprimer les conteneurs et les images

Pour commencer avec un système propre : arrêter et supprimer les conteneurs et les images.
Utiliser l'option 2 du menu pour arrêter et supprimer les conteneurs et les images.
Sinon, charger puis exécuter le script d'arrêt et de suppression des conteneurs et des images.
cd /home/votre-utilisateur/
curl https://raw.githubusercontent.com/ZerooCool/Linux-Search-Engine-Optimisation/master/installation/1-supprimer-conteneurs-et-images.sh > 1-supprimer-conteneurs-et-images.sh
Se connecter en super utilisateur : su avec le mot de passe de l'utilisateur root : OptimisationSEO
Lancer la suppression des conteneurs et des images : sh 1-supprimer-conteneurs-et-images.sh

3- Supprimer Docker

Supprimer Docker en cas d'erreur critique pour le réinstaller avec l'option 1 du menu.
Utiliser l'option 3 du menu pour supprimer Docker.
Sinon, charger puis exécuter le script de suppression de Docker.
cd /home/votre-utilisateur/
curl https://raw.githubusercontent.com/ZerooCool/Linux-Search-Engine-Optimisation/master/installation/1-supprimer-docker.sh > 1-supprimer-docker.sh
Se connecter en super utilisateur : su avec le mot de passe de l'utilisateur root : OptimisationSEO
Lancer la suppression de Docker : sh 1-supprimer-docker.sh

4- Importer l'image Docker de Debian

Importer l'image Docker officielle de Debian GNU/Linux 9.3.
Utiliser l'option 4 du menu pour importer l'image Docker de Debian.
Sinon, charger puis exécuter le script pour importer l'image Docker de Debian.
cd /home/votre-utilisateur/
curl https://raw.githubusercontent.com/ZerooCool/Linux-Search-Engine-Optimisation/master/installation/2-importer-image-debian.sh > 2-importer-image-debian.sh
Se connecter en super utilisateur : su avec le mot de passe de l'utilisateur root : OptimisationSEO
Lancer l'importation de l'image Docker de Debian: 2-importer-image-debian.sh

Utilisation générale

Importer l'image Docker Debian : docker pull debian
Entrer dans le shell du conteneur : docker run --name Debian -p 80:80 -t -i debian /bin/bash
Installer les paquets de votre choix depuis le shell du conteneur.

5- Installer le serveur web dans le conteneur

Dans le dossier installation voir le script 3-installer-le-serveur-dans-le-conteneur.sh
Ce script est utilisé pour installer le serveur web depuis le shell du conteneur.

L'image basée sur Debian comprend les paquets suivants :
Apache2 PHP7.0 PHP7-cURL MariaDB PHPMyAdmin Nano Wget

Vérifier le fonctionnement du serveur

Des scripts pour vérifier le fonctionnement du serveur sont partagés depuis le dossier hello.

6- Installer le CMS Joomla!

Dans le dossier installation voir le script 4-installer-joomla.sh
Ce script est utilisé pour installer Joomla depuis le shell du conteneur.

7- Installer le CMS Wordpress

8- Installer l'ERP Dolibarr

9- Sauvegarde de l'image Docker

Sauvegarder l'image Docker.
docker ps -a
docker commit -a "zer00cool" -m "Mon image personnalisée" 9c6dd58f7ea8 debian-stretch-joomla-3.8.5-fr

docker images -a
docker save -o <chemin> <id ou nom de l'image>
docker save -o /home/seo/joomla.tar f4e36cb1884b

10- Importer la sauvegarde locale de l'image

Exemple du chemin de l'image sur la machine virtuelle : /home/seo/debian.tar
Importer l'image avec la commande : docker load -i /home/seo/debian.tar
La console affiche le message suivant : `Loaded image ID:
sha256:f4e36cb1884bd396485cffe426908fe3d27af4d8b1f6f95aa41f8057efc22cd0

Afficher les images disponibles

Afficher les images disponibles avec la commande : docker images
La console affiche le message suivant :
REPOSITORY | TAG | IMAGE ID | CREATED | SIZE
none | none | f4e36cb1884b | 11 days ago | 787MB

On peut maintenant se connecter à l'image.
Des ports peuvent être mis en écoute comme celui du serveur Apache2 ou de MySQL/MariaDB
On lance la commande : docker run -d -p 80:80 -p 3306:3306 id-ou-nom

Entrer dans le shell d'image

docker run --name Debian -p 80:80 -t -i f4e36cb1884b /bin/bash
La console affiche le message suivant :
f74baae0d858645a5ffe9a8a0547d822a138aced1cd9bb41f11d58f4bc7cd120

Relancer le serveur :
service apache2 restart
service mysql restart

Saisir localhost depuis le navigateur devrait afficher la page d'accueil du serveur Apache2.
Supprimer l'historique du navigateur permet de rafraîchir la page localhost.

Sortir du shell de l'image Docker Debian avec exit

Entrer à nouveau dans un conteneur

La commande précédente docker run --name Debian -p 80:80 -t -i f4e36cb1884b /bin/bash ne permet plus de relancer le serveur car le nom Debian existe déjà.
Utiliser alors docker ps -a pour lister les conteneurs
Entrer dans le conteneur avec docker exec -ti <nom ou ID du container> /bin/bash
Ce conteneur a conservé les modifications effectuées sur la base de données.

Vérifier entre /bin/bash et bash, la commande la mieux adaptée.
Il semble que /bin/bash soit fonctionnel et adapté, voir si bash uniquement est suffisant ?
Se reconnecter au shell du conteneur pour administrer, démarrer, Apache2 et utiliser cURL.
Se connecter au bash : docker exec -it 405b505825de bash

Arrêter un conteneur

Arrêter un conteneur Docker quand on a fini de travailler pour ne pas avoir le serveur à l'écoute.
docker stop 405b505825de
Relancer le conteneur pour à nouveau être en écoute du serveur.
Les données sont persistantes.
docker start 405b505825de

Redémmarer un conteneur

docker ps -a
docker start Debian (ou id status)
docker exec -ti Debian /bin/bash

Vérifier si la commande précédente correspond (Pour les ports qui doivent être en écoute notamment.)

Stopper le précédent conteneur si en écoute des ports 80 ou 3600
docker stop dolibarr

Relancer le conteneur sauvegardé
docker ps -a
docker run --name Dolibarrok -p 80:80 -t -i dolibarrok /bin/bash

Une fois dans le shell du conteneur, démarrer le serveur Apache2 et MySQL/MariaDB.
service apache2 start
service mysql start

Sauvegarder l'image

Quelques lignes sont modifiées dans la base de données MariaDB.
Le commit du conteneur et la sauvegarde de l'image ajoute 200Mo à l'image.
persistance latest beeb2be0d826 40 seconds ago 974MB
<none> <none> f4e36cb1884b 3 days ago 781MB

Sauvegarder le conteneur

Identifier le conteneur à sauvegarder avec docker ps -a
docker export e0e99bf04c07 > dolibarr.tgz
docker import - dolibarrok < dolibarr.tgz

Optimiser la sauvegarde avec des volumes

A suivre : Optimiser la sauvegarde des données en utilisant les volumes.

Bibliographie

Le tutoriel Docker du wiki de Vision du web : Installer et utiliser Docker