Lancer un conteneur Docker : la commande essentielle

Quand on débute avec Docker, la commande qui fait tout le travail, c’est `docker run`. C’est elle qui donne vie à tes images, les transformant en conteneurs prêts à servir. Mais si tu te retrouves avec une ribambelle de conteneurs anonymes qui s’accumulent, tu vas vite comprendre l’intérêt de savoir comment les nommer et les gérer.

Pour que tu ne te noies pas dans les options, je vais te montrer comment lancer tes conteneurs efficacement, en choisissant le bon mode de fonctionnement et en configurant ce qu’il faut pour qu’ils tournent comme sur des roulettes.

Lancer un conteneur Docker : la commande `docker run` expliquée

La commande `docker run` est ta clé pour créer et lancer des conteneurs à partir d’images. Elle permet de nommer tes conteneurs avec `–name`, facilitant ainsi leur identification. L’option `-it` te connecte directement, tandis que `-d` les fait tourner en arrière-plan, une distinction essentielle pour la gestion de tes applications.

Comprendre la base : image vs conteneur

L’image Docker, c’est ton plan de construction. Elle contient tout ce qu’il faut pour faire tourner ton application. Pense-y comme un modèle à suivre.

Le conteneur, c’est l’instance vivante de cette image. C’est une machine virtuelle légère qui exécute ton code. Il peut être démarré, arrêté, et géré indépendamment de l’image source.

Les bases de `docker run` : créer et démarrer

La commande `docker run` est ton premier pas. Elle prend une image et crée un nouveau conteneur prêt à fonctionner. C’est la base pour tout déploiement.

Voici un exemple simple : `docker run ubuntu echo « Salut »`. Cela lance un conteneur Ubuntu et exécute une commande.

Tu crées ainsi une nouvelle instance isolée de ton application. Chaque `docker run` génère un conteneur unique, prêt à recevoir tes instructions ou à exécuter un service.

Nommer tes conteneurs : l’option `–name`

Nommer tes conteneurs est une pratique intelligente. Cela te permet de les identifier facilement parmi tous ceux que tu pourrais avoir. C’est une question d’organisation.

Utilise l’option `–name` comme ceci : `docker run –name mon-app-web nginx`. Ton conteneur s’appellera désormais « mon-app-web ».

Sans nom, Docker leur attribue un identifiant aléatoire. Avec `–name`, tu gagnes en lisibilité et tu simplifies la gestion des conteneurs par la suite.

Choisir ton mode de lancement : interactif ou détaché ?

Mais lancer un conteneur, c’est aussi choisir comment tu veux interagir avec lui.

Le mode interactif avec `-it`

L’option `-it` combine deux modes : interactif (`-i`) et allocation d’un pseudo-terminal (`-t`). Cela te permet de discuter directement avec ton conteneur.

C’est idéal pour exécuter des commandes ponctuelles, explorer un système de fichiers ou déboguer une application. Tu vois la sortie en temps réel et tu peux taper des commandes.

Le mode détaché avec `-d`

Le mode détaché, avec l’option `-d`, lance ton conteneur en arrière-plan. Il tourne sans bloquer ton terminal. C’est parfait pour les services.

Exemple : `docker run -d –name mon-serveur-web nginx`. Ton serveur web tourne désormais discrètement.

Ton terminal est immédiatement disponible pour d’autres tâches. Le conteneur continue son exécution de manière autonome, prêt à répondre aux requêtes.

La différence clé : blocage vs autonomie

La différence fondamentale est simple : `-it` t’attache à ton conteneur, le rendant visible et interactif. `-d` te libère, le laissant vivre sa vie en coulisses.

Choisis `-it` pour des sessions courtes et interactives. Opte pour `-d` pour les démons et les services qui doivent rester actifs.

Comprendre cela te permet d’optimiser l’utilisation de tes ressources et de ton temps. Chaque mode a sa raison d’être.

Gérer tes conteneurs : démarrer, arrêter, lister

Une fois tes conteneurs lancés, il faut savoir les maîtriser.

Lister les conteneurs en cours d’exécution (`docker ps`)

La commande `docker ps` est ton tableau de bord. Elle te montre tous les conteneurs qui tournent en ce moment. Tu as une vue d’ensemble claire.

Tu y verras leur ID, leur nom, leur statut, et les ports qu’ils utilisent. C’est essentiel pour savoir ce qui se passe dans ton environnement Docker.

Démarrer et arrêter un conteneur existant (`start`, `stop`)

`docker start` reprend un conteneur que tu as arrêté. C’est différent de `docker run` qui crée toujours un nouveau conteneur. Tu relances quelque chose d’existant.

Pour l’arrêter proprement, utilise `docker stop `. C’est une mise à l’arrêt en douceur.

Cela te permet de gérer le cycle de vie de tes conteneurs sans avoir à les recréer à chaque fois. Tu gardes ainsi leur état et leurs configurations.

Le nettoyage automatique avec `–rm`

Pour les conteneurs temporaires, l’option `–rm` est ton alliée. Elle supprime automatiquement le conteneur dès qu’il s’arrête. Plus de nettoyage manuel à faire.

Exemple : `docker run –rm ubuntu echo « Tâche finie »`. Ce conteneur disparaît tout seul après son exécution.

Cela évite d’encombrer ton système avec des conteneurs qui ne servent plus à rien. C’est une bonne pratique pour maintenir un environnement propre et organisé.

Configurer tes conteneurs : ports, variables et données

Maintenant que tu sais les lancer et les gérer, voyons comment les rendre vraiment utiles.

Exposer tes services : la redirection de ports `-p`

L’option `-p` te permet de mapper un port de ta machine hôte à un port du conteneur. C’est ainsi que tes services deviennent accessibles depuis l’extérieur.

Par exemple, `docker run -p 8080:80 nginx` rend le port 80 du conteneur Nginx accessible via le port 8080 de ta machine. Tu peux ainsi interagir avec ton application web.

Personnaliser avec les variables d’environnement `-e`

L’option `-e` te permet de passer des variables d’environnement à ton conteneur. C’est une manière courante de configurer tes applications sans modifier leur code.

Exemple : `docker run -e DB_PASSWORD=secret mon-db`. La variable `DB_PASSWORD` est ainsi définie.

Cela rend tes conteneurs plus flexibles et réutilisables. Tu peux adapter leur comportement en fonction de l’environnement dans lequel ils sont déployés.

Garantir la persistance des données avec les volumes `-v`

Les volumes sont essentiels pour que tes données ne disparaissent pas quand un conteneur s’arrête. Ils lient un répertoire de ton hôte à un répertoire dans le conteneur.

L’option `-v` est utilisée pour cela, par exemple : `docker run -v /data:/app/data mon-app`. Tes données sont sauvegardées.

C’est la clé pour les bases de données ou les applications qui génèrent des fichiers importants. Tes données restent accessibles et sûres.

Voilà, tu sais maintenant comment lancer tes conteneurs avec `docker run`, nommer tes applications et choisir si elles tournent en arrière-plan ou de manière interactive. C’est la base pour ne plus être perdu dans tes déploiements et gagner un temps précieux. Mets-le en pratique dès aujourd’hui pour maîtriser tes environnements.