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.
