Docker & Containers

commande docker runPréparer le lancement d’un conteneur

Renseignez l’image et les correspondances nécessaires pour obtenir un aperçu destiné au shell POSIX.

commande docker run

Paramètres de l’opération

Ports

Montages

Variables d’environnement

Aperçu de la commande

docker run \
  --detach \
  'nginx:alpine'

Sortie POSIX sh pour macOS, Linux ou WSL. Les chemins sont littéraux : aucune expansion de variable ou de ~.

La configuration reste dans ce navigateur. Aucun accès à Docker ou au registre, aucune commande exécutée.

Options

20 lignes par groupe. CPU : 0.001–1024. Mémoire : entier b/k/m/g, minimum 6 Mio ; vide signifie non défini.

L’aperçu est à jour.

Un exemple trouvé dans une documentation ne correspond pas toujours aux ports et aux répertoires de votre machine. Construire une commande docker run dans des champs séparés permet de relire chaque choix avant de reprendre des options devenues inutiles.

Le formulaire démarre avec nginx:alpine en arrière-plan, sans publication de port ni limite de ressources. Les champs vides sont omis. L’image conserve son point d’entrée et sa commande par défaut ; aucun mot de passe ou chemin applicatif n’est inventé.

Pourquoi préparer une commande docker run ici ?

Rendre les correspondances lisibles

La commande docker run réunit les ports, montages et variables sous forme d’arguments distincts. Les chemins contenant des espaces ou des apostrophes reçoivent les guillemets nécessaires. Dès qu’un paramètre change, l’ancien résultat ne peut plus être exporté avant une nouvelle génération.

Des lignes d’image, de ports et de montages sont réunies dans un aperçu de commande.

Voir ce que le conteneur pourra atteindre

Un mode privilégié, un chemin sensible ou un port accessible hors de la boucle locale déclenche un avertissement visible. Les valeurs ENV sont masquées dans les champs et dans l’aperçu. Leur affichage autorise ensuite l’export complet ; ce masquage n’est pas un chiffrement.

Des variables masquées et un export désactivé accompagnent les avertissements de privilèges et de montages hôtes.

Trois choix à faire avant l’exécution

01

Choisir l’adresse côté hôte

Une nouvelle ligne utilise 127.0.0.1 et TCP. Effacer l’adresse demande une publication sur toutes les interfaces. Le port du conteneur doit correspondre au service de l’image : modifier le port externe ne reconfigure pas le serveur interne.

02

Distinguer un chemin d’un volume

Sélectionnez bind pour un chemin absolu du serveur Docker, ou volume pour un stockage géré par Docker. Un nouveau montage est en lecture seule. Une base de données devant écrire nécessite un choix explicite différent, après vérification de la source et de la destination.

03

Regrouper les modifications

La génération automatique attend 350 ms après la dernière saisie. Désactivez-la pour modifier plusieurs lignes, puis utilisez le bouton ou Ctrl/Cmd+Entrée. Exemple, effacement et suppression de ligne passent par un aperçu ; une annulation restaure les champs et le résultat.

Ce que les arguments configurent

Publication de ports précise

Chaque ligne crée un argument --publish avec adresse IPv4, port hôte, port du conteneur et protocole TCP ou UDP. Deux liaisons qui se recouvrent pour le même port hôte et protocole sont refusées. TCP et UDP peuvent partager un numéro ; l’occupation réelle du port sur le serveur reste inconnue.

Deux formes de stockage

Un montage bind relie un fichier ou répertoire hôte, tandis qu’un volume nommé est géré par Docker. --mount précise le type et ajoute readonly si demandé. Des destinations identiques après normalisation sont refusées pour éviter qu’un montage en masque un autre.

Variables d’environnement littérales

Espaces, signes égal, apostrophes et dollars restent dans un seul argument. Une valeur vide produit explicitement KEY=. Les noms en double sont rejetés. Aucun environnement de l’hôte n’est lu et les expressions comme $HOME ou une substitution de commande ne sont pas évaluées.

Cycle de vie et ressources

Nom, arrière-plan, terminal interactif, suppression à l’arrêt, politique de redémarrage, CPU et mémoire peuvent être réglés. --rm associé à une politique autre que no bloque la génération. Une limite vide n’ajoute aucun argument et une valeur renseignée ne réserve pas les ressources correspondantes.

Périmètre et limites

Une seule commande POSIX
La sortie vise POSIX sh sous Linux, macOS ou WSL avec des chemins de conteneur Linux. Pas de PowerShell, CMD, import de commande existante, Compose, Dockerfile, arguments libres ou remplacement de la commande de démarrage. Aucun accès à Docker ni au registre d’images n’est effectué.
Images et ports pris en charge
Le dépôt est en minuscules, avec registre DNS ou IPv4 et port facultatifs, étiquette et digest sha256. Les registres IPv6, identifiants d’image seuls et autres digests sont exclus. Les ports sont des entiers de 1 à 65535, sans plage, attribution aléatoire, liaison IPv6 ni SCTP.
Chemins de montage non ambigus
La source bind est absolue ; la destination aussi, sans être la racine. Virgules, guillemets doubles, barres obliques inverses, contrôles et segments . ou .. sont refusés. Espaces et apostrophes sont conservés. Un volume porte un nom de 2–255 lettres, chiffres, points, tirets ou traits de soulignement, commençant par une lettre ou un chiffre.
Bornes du formulaire
Chaque groupe accepte 20 lignes. Un texte est limité à 4096 unités UTF-16, le total à 65536. Le CPU va de 0.001 à 1024 avec trois décimales au plus. La mémoire utilise un entier et éventuellement b/k/m/g, au minimum 6 Mio et au maximum un nombre d’octets signé sur 64 bits. Aucun dépassement n’est tronqué silencieusement.
Le masquage ne stocke pas les secrets
Tant que les valeurs ENV sont cachées, copie et téléchargement du résultat sont désactivés. Après affichage, le script contient les vraies valeurs, qui peuvent ensuite apparaître dans l’historique du shell ou l’inspection du conteneur. Noms de variables et chemins ne sont pas automatiquement classés comme secrets.
Les avertissements ne sont pas un audit
Les chemins racine, système et utilisateur sont signalés, sans résoudre les liens symboliques. Même un socket Docker monté en lecture seule mérite examen. Existence des fichiers, droits, contenu de l’image et prise en charge des limites par le noyau doivent être vérifiés sur l’hôte réel.

Questions sur la commande docker run

Comment passer une variable d’environnement contenant des espaces à Docker ?

Saisissez la valeur telle quelle, sans lui ajouter vous-même des guillemets de shell. Le générateur protège l’argument KEY=value entier, en conservant les espaces et signes égal. $HOME reste du texte littéral. Les retours à la ligne et caractères de contrôle ne sont pas acceptés.

Peut-on définir --rm et --restart dans un Dockerfile ?

Il s’agit d’options de lancement, pas d’instructions Dockerfile. Pour un service qui doit redémarrer, désactivez la suppression automatique. Pour un conteneur temporaire avec --rm, choisissez la politique no. Le formulaire refuse de produire la combinaison contradictoire.

Quelle est la différence entre volumes Docker et montages bind ?

Un volume nommé est administré par Docker, alors qu’un montage bind pointe vers un emplacement précis de l’hôte. Si ce dernier est accessible en écriture, le conteneur peut modifier les fichiers hôtes. Avec --mount, une source bind absente provoque normalement une erreur ; cette page ne peut pas vérifier sa présence.

Comment mapper plusieurs ports ou volumes ?

Ajoutez une ligne par correspondance, jusqu’à 20 par groupe. Gardez les ports hôte et conteneur dans leurs champs respectifs. Pour chaque montage, choisissez un type, une source et une destination. Les destinations répétées et les publications de ports qui se recouvrent sont refusées.

Peut-il générer du YAML docker-compose ?

Non. Le résultat décrit un seul nouveau conteneur et garde la commande de démarrage de son image. Compose peut représenter plusieurs services, réseaux et dépendances. Cela nécessite un autre modèle ; la sortie shell n’est pas une définition de service YAML.

La prévisualisation diffère-t-elle de la documentation Docker ?

Relire avant de copier

Préparez votre commande docker run, corrigez les erreurs et examinez les avertissements, puis vérifiez les conditions de la machine sur laquelle vous comptez la lancer.