Déployez vos applications grâce à Docker
10 mai 2019II. Création et utilisation des images
Maintenant que Docker est installé, nous allons vous parler des images. Les conteneurs Docker sont créés à partir d’images qui peuvent se trouver en local ou sur un serveur d’images distant, appelé registry.
1) Créer des images Docker
Il n’est pas nécessaire de savoir créer des images pour utiliser les conteneurs Docker. En effet, en fonction de votre besoin, il existe déjà probablement une image qui y répond sur un registry. C’est pourquoi nous ne ferons que survoler ce sujet ici. La technique consiste en gros à créer un fichier Dockerfile qui va exécuter les commandes pour créer notre image.
Ensuite, il suffit de construire l’image avec une commande de build à partir de ce Dockerfile.
Exemple de fichier Dockerfile:
# Image à partir de laquelle nous allons construire la nôtre
FROM debian:wheezy
# On recherche les paquets disponibles et on installe Nginx
RUN apt-get update \
&& apt-get install -y \
nginx
# On copie les fichiers du système hôte vers l'image (configuration, scripts, appli...)
COPY nginx.conf /etc/nginx/nginx.conf
COPY service_start.sh /home/docker/script/service_start.sh
COPY ./mon_appli /app
# On applique les droits pour l'exécution du script
RUN chmod 744 /home/docker/script/service_start.sh
# Définition du point d'entrée : le premier script qui va se lancer au démarrage du container
ENTRYPOINT /home/docker/script/service_start.sh
# Dossier dans lequel on se trouvera quand un nouveau container sera lancé à partir de cette image
WORKDIR /home/docker
Commande pour construire votre image :
sudo docker build -t nom_de_mon_image dossier_avec_dockerfile
Exemple :
sudo docker build -t mon_appli .
2) Partager ses images Docker
Si vous souhaitez partager vos images avec d’autres utilisateurs, vous pouvez soit :
- Les exporter avec cette commande :
sudo docker save identifiantImage > maSauvegarde.tar
N.B : Pour trouver l’identifiant d’une image : sudo docker image ls -a
Puis les importer avec celle-ci :
sudo docker load maSauvegarde.tar
- Les déposer sur le Hub Docker en vous inscrivant dessus.
- Les déposer sur un autre registry sur lequel vous devez aussi disposer d’un compte. D’ailleurs, vous pouvez déployer votre propre registry.
Pour déposer une image sur un registry :
docker login [nom_de_domaine:port]
N.B : L’IP et le port du registry ne sont nécessaires que si vous voulez déposer une image sur un autre registry que le Hub Docker.
Ensuite, taggez votre image :
sudo docker tag nom_de_mon_image username/repository:tag
Et envoyez-la vers le registry sur lequel vous êtes connecté :
sudo docker push username/repository:tag
3) Trouver des images existantes
Pour trouver des images déjà existantes, vous pouvez faire une recherche sur le registry sur lequel vous êtes connecté (ou, par défaut, le hub docker ) :
sudo docker search votre_recherche
Pour le Hub Docker, vous pouvez directement faire une recherche sur le web.
Si vous souhaitez lancer un conteneur à partir d’une image qui n’est pas présente en local, elle sera alors automatiquement téléchargée au lancement du conteneur. C’est ce qui s’est passé si vous avez testé l’image hello-world à la fin de l’installation de Docker.
4) Gérer ses images Docker (les commandes)
Même si Docker télécharge automatiquement les images non présentes en local au lancement d’un conteneur, vous pouvez télécharger directement une image avec cette commande :
sudo docker pull mon_image
N.B : Une image permet de déployer plusieurs conteneurs. Donc, une fois l’image téléchargée, vous pourrez lancer plusieurs conteneurs à partir de celle-ci sans la télécharger à nouveau.
Pour lister les images présentes en local :
sudo docker image ls -a
Pour supprimer une image :
sudo docker image rm ID_image
Pour supprimer les images non-taggées ET non-utilisées :
docker image prune
Pour supprimer toutes les images non-utilisées :
docker image prune -a
Pour supprimer toutes les images :
sudo docker image rm $(docker image ls -a -q)
Sommaire :
- Introduction
- Installation de Docker
- Création et utilisation des images
- Gestion des conteneurs
- Docker-Compose
Les commentaires sont fermés.