2015-09-27 3 views
5

Właśnie zacząłem używać Dockera i bardzo mi się podoba, ale mam płynny przepływ pracy, który chciałbym usprawnić. Kiedy przeprowadzam iterację na moim skrypcie Dockerfile , często testuję rzeczy po kompilacji, uruchamiając sesję bashową , wykonując niektóre polecenia, dowiadując się, że taki i taki pakiet nie został poprawnie zainstalowany, a następnie wraca i szczypanie mojego Dockerfile.jak "dokować uruchomić" sesję powłoki na minimalnej instalacji Linuksa i natychmiast zepsuć kontener?

Powiedzmy zbudowałem mój obraz i określili ją jako buildfoo, to bym go uruchomić jak tym:

 $> docker run -t -i buildfoo 

       ... enter some bash commands.. then ^D to exit 

Wtedy mam uruchomiony kontenera, że ​​muszę posprzątać. Zazwyczaj po prostu nuke wszystko tak:

docker rm --force `docker ps -qa` 

Działa to dla mnie OK .. Jednak wolałbym nie trzeba ręcznie usunąć pojemnik .

Wszelkie wskazówki z wdzięcznością przyjęte!


pewne dodatkowe drobne szczegóły:

Running minimalny CentOS 7 zdjęcie i za pomocą bash jako swojej skorupy.

Odpowiedz

10

Należy użyć flagi -rm polecenia dokowania. --rm=true lub po prostu --rm.

Po wyjściu automatycznie usuwa pojemnik (niezgodny z -d). Przykład:

docker run -i -t --rm=true centos /bin/bash 

lub

docker run -i -t --rm centos /bin/bash 
+2

Czy jesteś pewien, że jest '--rm = FALSE? –

+0

zaktualizował poprawnie odpowiedź. dzięki za wskazanie @Renaud Pacalet – spectre007

+0

, który działa! dzięki –

1

używam the alias dr

alias dr='docker run -it --rm' 

To daje:

dr myimage 
ls 
... 
exit 

Nie więcej pojemnik uruchomiony.

2

Chociaż powyższe nadal działa, komenda poniżej korzysta z nowszych składni Döcker za

docker container run -it --rm centos bash 
Powiązane problemy