Présentation
Point d'entrée et CMD sont des instructions dans le Dockerfile qui définissent le processus dans une image Docker. Vous pouvez en utiliser un ou combiner les deux selon la manière dont vous souhaitez gérer votre conteneur.
Une différence est que contrairement à CMD , vous ne pouvez pas remplacer le ENTRYPOINT commande simplement en ajoutant de nouveaux paramètres de ligne de commande. Pour remplacer ENTRYPOINT, vous devez modifier le docker run commande suivant une syntaxe spécifique.
Dans ce didacticiel, vous apprendrez à remplacer ENTRYPOINT à l'aide de la commande docker run.
Prérequis
- Accès à une ligne de commande
- Un utilisateur avec sudo privilèges
- Une instance Docker en cours d'exécution
- Une image Docker existante
Remplacer ENTRYPOINT avec docker run
Pour illustrer comment remplacer cette commande, nous allons exécuter un conteneur qui renvoie le message Hello World en combinant ENTRYPOINT et CMD dans le Dockerfile.
Dans le Dockerfile, le ENTRYPOINT La commande définit l'exécutable, tandis que CMD définit le paramètre par défaut.
FROM ubuntu
MAINTAINER sofija
RUN apt-get update
ENTRYPOINT [“echo”, “Hello”]
CMD [“World”] Si vous créez une image à partir de ce fichier et que vous l'utilisez pour exécuter un conteneur Docker, la sortie affiche :
Vous pouvez facilement remplacer le CMD par défaut en ajoutant le paramètre souhaité au docker run commande :
sudo docker run [container_name] [new_parameter]
Dans l'exemple ci-dessous, nous avons changé le paramètre CMD World , en ajoutant Sofija à la commande. Par conséquent, la sortie affiche Hello Sofija .
Cependant, vous pouvez remplacer l'exécutable par défaut et, par exemple, exécuter un shell à l'intérieur d'un conteneur. Dans ce cas, vous devez utiliser le --entrypoint flag et exécutez le conteneur en utilisant la syntaxe suivante :
sudo docker run --entrypoint [new_command] [docker_image] [optional:value] Pour remplacer le message d'écho par défaut dans notre exemple et exécuter le conteneur de manière interactive, nous utilisons la commande :
sudo docker run -it --entrypoint /bin/bash [docker_image] La sortie nous montre que nous sommes maintenant à l'intérieur du conteneur.