Déployez vos applications grâce à Docker

Déployez vos applications grâce à Docker

10 mai 2019 Non Par Paidge

II. 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

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 :

  1. Introduction
  2. Installation de Docker
  3. Création et utilisation des images
  4. Gestion des conteneurs
  5. Docker-Compose

Pages : 1 2 3 4 5