2016-02-28 22 views
46

Per avviare una shell interattiva per l'immagine di Ubuntu possiamo eseguire:Avvio di una shell nella finestra mobile alpino Container

[email protected]:~$ docker run -it --rm ubuntu 
[email protected]:/# ls 
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var 

Ma quando questo viene eseguito per la Alpine Docker Image i seguenti risultati:

[email protected]:~$ docker run -it --rm alpine 
Error response from daemon: No command specified 

Qual è il comando per l'avvio di una shell interattiva in un contenitore base alpino?

risposta

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

Opzioni usati sopra:

  • /bin/ash è Ash (Almquist Shell) forniti da BusyBox
  • --rm rimuovere automaticamente il contenitore quando esce (docker run --help)
  • -i modo interattivo (Tenere STDIN aperto anche se non collegato)
  • -t A llocate una pseudo-TTY
+0

Forse dovresti spiegare questa soluzione e quali sono gli argomenti extra. – aneroid

+1

Certo - buona idea - ash è la shell e --rm rimuove il contenitore dopo il completamento della corsa. Quindi, se vuoi che il contenitore sia ancora disponibile dopo l'esecuzione, salta l'uso di --rm. Lo sto usando da quando sto sperimentando ATM. – Ole

22

Di solito, un'immagine alpino Linux non contiene bash, invece è possibile utilizzare /bin/ash, /bin/sh, ash oppure solo sh.

/bin/cenere

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

/bin/sh

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

cenere

docker run -it --rm alpine ash 

sh

docker run -it --rm alpine sh 

Spero che questa informazione ti aiuti.