2016-02-28 15 views
46

Aby uruchomić interaktywną powłokę do obrazu ubuntu możemy uruchomić:Rozpoczęcie Shell w Docker Alpine Pojemnik

[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 

Ale kiedy ten prowadzony jest na Alpine Docker Image następujące wyniki:

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

Jakie jest polecenie uruchomienia interaktywnej powłoki w alpejskim kontenerze bazowym?

Odpowiedz

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

Opcje użyte powyżej:

  • /bin/ash jest Ash (Almquist Shell) świadczone przez BusyBox
  • --rm automatycznie usunąć pojemnik kiedy wychodzi (docker run --help)
  • -i Tryb interaktywny (Keep STDIN otwarte nawet jeśli nie jest dołączony)
  • -t A llocate pseudo-TTY
+0

Może powinieneś wyjaśnić to rozwiązanie i jakie są dodatkowe argumenty. – aneroid

+1

Oczywiście - dobry pomysł - jesion jest powłoką, a --rm usuwa kontener po zakończeniu biegu. Jeśli chcesz, aby kontener był nadal dostępny po uruchomieniu, pomiń użycie --rm. Używam go, ponieważ eksperymentuję tylko z bankomatem. – Ole

22

Zazwyczaj Alpine Linux obraz nie zawiera bash zamiast można użyć /bin/ash, /bin/sh, ash lub tylko sh.

/bin/ash

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

/bin/sh

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

popiół

docker run -it --rm alpine ash 

sh

docker run -it --rm alpine sh 

Mam nadzieję, że te informacje ci pomogą.