GNU/Linux >> Tutoriels Linux >  >> Linux

Démarrer un shell dans le conteneur Docker Alpine

Généralement, une image Alpine Linux ne contient pas bash , Au lieu de cela, vous pouvez utiliser /bin/ash , /bin/sh , ash ou seulement sh .

/bin/ash

docker run -it --rm alpine /bin/ash

/bin/sh

docker run -it --rm alpine /bin/sh

cendre

docker run -it --rm alpine ash

merde

docker run -it --rm alpine sh

J'espère que ces informations vous aideront.


[email protected]:~$ docker run -it --rm alpine /bin/ash
(inside container) / # 

Options utilisées ci-dessus :

  • /bin/ash est Ash (Almquist Shell) fourni par BusyBox
  • --rm Supprimer automatiquement le conteneur à sa sortie (docker run --help )
  • -i Mode interactif (Gardez STDIN ouvert même s'il n'est pas connecté)
  • -t Attribuer un pseudo-TTY

De nos jours, les images Alpine démarrent directement en /bin/sh par défaut, sans avoir à spécifier de shell à exécuter :

$ sudo docker run -it --rm alpine  
/ # echo $0  
/bin/sh  

C'est depuis le alpine image Dockerfiles contient maintenant un CMD commande, qui spécifie le shell à exécuter au démarrage du conteneur :CMD ["/bin/sh"] .

Dans les anciennes versions d'images Alpine (avant 2017), la commande CMD n'était pas utilisée, car Docker créait une couche supplémentaire pour CMD, ce qui entraînait une augmentation de la taille de l'image. C'est quelque chose que les développeurs d'images Alpine voulaient éviter. Dans les versions récentes de Docker (1.10+), CMD n'occupe plus une couche, et il a donc été ajouté à alpine images. Par conséquent, tant que CMD n'est pas remplacé, les images Alpine récentes démarreront en /bin/sh .

Pour référence, consultez le commit suivant sur les Dockerfiles Alpine officiels de Glider Labs :
https://github.com/gliderlabs/docker-alpine/commit/ddc19dd95ceb3584ced58be0b8d7e9169d04c7a3#diff-db3dfdee92c17cf53a96578d4900cb5b


Linux
  1. Pouvoir au peuple

  2. Comment quitter un conteneur Docker

  3. Comment changer le fuseau horaire d'un conteneur Docker

  4. Exécutez un script shell à partir de la commande docker-compose, à l'intérieur du conteneur

  5. Comment spécifier le nom d'hôte pour le conteneur en cours d'exécution ?

Image Docker vs conteneur :les principales différences

Qu'est-ce que le Shell sous Linux ?

Une introduction au registre des conteneurs de Quay

Comment vérifier si le démon Docker ou un conteneur est en cours d'exécution

Comment inspecter le contenu d'une image Docker sans démarrer un conteneur

Comment se connecter en SSH à un conteneur Docker