2016-02-28 7 views
46

Um eine interaktive Shell für das ubuntu Bild starten wir laufen können:eine Shell in der Docker Alpine Container Start

[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 

Aber wenn dies für die Alpine Docker Image die folgenden Ergebnisse führen:

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

Wie lautet der Befehl zum Starten einer interaktiven Shell in einem alpinen Basiscontainer?

Antwort

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

Optionen verwendet oben:

  • /bin/ash ist Ash (Almquist Shell) zur Verfügung gestellt von BusyBox
  • --rm automatisch den Behälter entfernen, wenn es austritt (docker run --help)
  • -i interaktiven Modus (Keep STDIN offen auch wenn nicht angebracht)
  • -t A llocate einen Pseudo-TTY
+0

Vielleicht sollten Sie diese Lösung erklären und was die zusätzlichen Argumente tun. – aneroid

+1

Sicher - gute Idee - Asche ist die Schale und --rm entfernt den Behälter, nachdem der Lauf abgeschlossen ist. Wenn Sie möchten, dass der Container nach dem Lauf noch verfügbar ist, überspringen Sie die Verwendung von --rm. Ich benutze es, da ich nur ATM experimentiere. – Ole

22

Normalerweise ist ein Alpine Linux-Image nicht bash enthalten, Sie können stattdessen /bin/ash verwenden, /bin/sh, ash oder nur sh.

/bin/ash

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

/bin/sh

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

ash

docker run -it --rm alpine ash 

sh

docker run -it --rm alpine sh 

Ich hoffe, diese Informationen helfen Ihnen.