Tutorial Docker pour démarrer sous Ubuntu 16.04

Courte présentation d’une procédure permettant de déployer rapidement des containers Docker. Dans l’exemple je présente le déploiement d’un container apache2 sous Docker sans utiliser de fichier de configuration. Configurer des containers via des fichiers de configuration permet d’automatiser le déploiement et faciliter la configuration du container. L’utilisation de fichier de configuration pour Docker fera l’objet d’un future billet.

Installation du Service Docker

Version du noyau et l’architecture du système

sudo uname -rm

Version de la release

sudo lsb_release –a

Update des dépôts

sudo apt-get update

Installation des paquets supplémentaires recommandés

sudo apt-get install -y --no-install-recommends linux-image-extra-$(uname -r) linux-image-extra-virtual

Installation de Docker depuis les dépôts Ubuntu

sudo apt-get install -y docker.io

Vérification de l’installation de Docker avec le container de base

sudo docker run hello-world

Si Docker ne peut pas trouver une image dans le système local, il va la télécharger dans le hub de la communauté docker (pulling). Dans notre exemple le container hello-world n’est pas présent par défaut. Il sera donc téléchargé automatiquement.

Nettoyer une installation Docker
sudo apt-get purge docker-engine
sudo rm -rf /var/lib/docker

Si des fichiers de configuration supplémentaires ont été installés, ils doivent être supprimés manuellement.

Administration du Service Docker

#Démarrer/Stoper le Service
sudo systemctl start docker
sudo systemctl stop docker
#Activer/Desactiver au Boot
sudo systemctl enable docker
sudo systemctl disable docker
#Status actuel du Service
sudo systemctl status docker

Pour Docker si une image n’est pas présente dans le système local, il va automatiquement la télécharger. Si vous souhaitez lister les images présentes dans le système

sudo docker image
#Pour lister l'historique d’exécution des containers docker utilisez
sudo docker ps -a
#Pour lister les containers en cours d'execution
sudo docker ps

Commandes Docker

docker build : Construction d’une nouvelle image
docker commit : Créer une nouvelle image à partir des changements d’un conteneur
docker images : Lister des images
docker ps : Lister de conteneurs
docker pull : Récupérer une image ou un repository à partir du Docker HUB
docker rm : Supprimer une ou plusieurs conteneurs
docker rmi : Supprimer une ou plusieurs images
docker start : Lancer un ou plusieurs conteneurs arrêtés
docker run : Exécuter une commande dans un nouveau conteneur
docker stop : Arrêtez un conteneur en cours d’exécution

Création d’un container pour service Web via apache2 en procédure Manuel

sudo apt-get install apache2

Dans cette exemple le container sera accessible depuis le port 8080 et dirigera vers le port 80 du container.
Je choisis également de créer un volume entre l’hôte et le container, ainsi je map le dossier du système hôte « home/$USER/PROJECT/dockertestapache » dans le container vers « /usr/local/apache2/htdocs »

sudo docker run -d --name my-apache-app -p 8080:80 -v /home/$USER/PROJECT/dockertestapache:/usr/local/apache2/htdocs httpd:2.4

On peut ainsi directement modifier les fichiers dans le dossier « home/$USER/PROJECT/dockertestapache/index.html » pour modifier l’index de notre serveur Web.

Le container est à présent en cours de fonctionnement

Je détail des options de lancement :
-d lancer une image en arrière plan
-i permet d’activer le mode interactif, utile pour visualiser les logs
-t permet d’avoir un pseudo-terminal
–rm permet de supprimer automatiquement le conteneur à la fin de l’exécution
-v DossierSourceDansHost:DossierDestinationdansContainer

On pourrai directement interagir avec le container en suivant la petite procédure ci-dessous

sudo docker exec -it my-apache-app bash
#on peut ainsi procéder à l'installation de Nano
apt-get update && apt-get install nano
#Le fichier d'index apache2 du container se trouve
nano /usr/local/apache2/htdocs

Si vous souhaitez supprimer le container, on stop le container puis on le supprime.

sudo docker stop my-apache-app && sudo docker rm my-apache-app

Laisser un commentaire