Choisir une commande de démarrage pour votre image Docker

Introduction à Docker

Tim Sangster

Software Engineer @ DataCamp

Qu'est-ce qu'une commande de démarrage ?

L'image hello-world affiche du texte puis s'arrête.

docker run hello-world
Hello from Docker!

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon created a new container from the hello-world image which runs the
    executable that produces the output you are currently reading.
 3. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.
Introduction à Docker

Qu'est-ce qu'une commande de démarrage ?

Une image avec python peut lancer python au démarrage.

docker run python3-sandbox
Python 3.10.6 (main, Nov  2 2022, 18:53:38) [GCC 11.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 
...
....
>>> exit()
repl@host:/#
Introduction à Docker

Exécuter une commande shell au démarrage

CMD <shell-command>

L'instruction CMD :

  • S'exécute au démarrage de l'image.
  • N'augmente pas la taille de l'image.
  • N'ajoute pas de temps à la construction.
  • S'il y en a plusieurs, seule la dernière a un effet.
Introduction à Docker

Cas d'usage typiques

Démarrer une application pour exécuter un enchaînement de tâches ou accepter des connexions externes.

CMD python3 my_pipeline.py
CMD postgres

Démarrer un script qui lance ensuite plusieurs applications

CMD start.sh
CMD python3 start_pipeline.py
Introduction à Docker

Quand s'arrête-t-elle ?

$$

  • Image hello-world -> Après l'affichage du texte
  • Image de base de données -> À l'arrêt de la base

$$

Une image plus générale exige une commande de démarrage plus générale.

  • Image Ubuntu -> À la fermeture du shell
Introduction à Docker

Outrepasser la commande de démarrage par défaut

Démarrer une image

docker run <image>

Démarrer une image avec une commande de démarrage personnalisée

docker run <image> <shell-command>

Démarrer une image en mode interactif avec une commande de démarrage personnalisée

docker run -it <image> <shell-command>
docker run -it ubuntu bash
Introduction à Docker

Résumé

Usage Instruction Dockerfile
Ajouter une commande shell exécutée au démarrage d'un conteneur créé à partir de l'image. CMD <shell-command>

Usage Commande shell
Outrepasser la CMD définie dans l'image docker run <image> <shell-command>
Outrepasser la CMD définie dans l'image et exécuter en mode interactif docker run -it <image> <shell-command>
Introduction à Docker

Passons à la pratique !

Introduction à Docker

Preparing Video For Download...