Każde docker run
polecenie lub każde RUN
polecenie w pliku Dockerfile tworzy kontener. Jeśli kontener nie jest już uruchomiony, nadal można go zobaczyć za pomocą docker ps -a
.
Czy powinienem się martwić posiadaniem ogromnej listy niedziałających kontenerów? Czy powinienem wydawać docker rm
na niedziałających kontenerach?
Nie mam pewności, jakie kary za wydajność lub pamięć / pamięć masową ponoszą te niedziałające kontenery.
docker exec
Komendy został dodany jakiś czas temu, patrz docs.docker.com/reference/commandline/cli/#exec - będzie wykonać polecenie od uruchomionego kontenera.Odpowiedzi:
Kontenery, które nie są uruchomione, nie zajmują żadnych zasobów systemowych poza miejscem na dysku.
Zwykle dobrze jest posprzątać po sobie, ale jeśli siedzi się ich dużo, nie powinno to wcale spowalniać wydajności.
Jeśli zauważysz spowolnienie podczas uruchamiania poleceń dockera z wieloma zatrzymanymi kontenerami, może to oznaczać błąd w dockerze i powinieneś zgłosić błąd.
źródło
RUN
polecenia została teraz przeniesiona do: docs.docker.io/en/latest/reference/builder/#rundocker run
Dokumentacja opisuje, jak automatycznie oczyścić zbiornik i usunąć z systemu plików Po wyjściu kontenerów:Z powyższego wynika, że domyślnie kontenery nie są usuwane, ale dodanie
--rm=true
lub tylko krótka ręka--rm
będzie działać tak:Po wyjściu z kontenera zostanie on automatycznie usunięty.
Możesz to sprawdzić, wyświetlając kontenery Dockera w jednym oknie terminala:
Następnie w innym oknie uruchom to polecenie, aby uruchomić wiele kontenerów docker, które zostaną automatycznie zamknięte po uśpieniu przez maksymalnie 10 sekund.
źródło
-rm
jest przestarzały i zostanie kiedyś usunięty, użyj--rm
zamiast niego.Jeśli uruchamiasz kontener z woluminem i nie używasz docker rm -v do jego usunięcia, to wolumin nie jest usuwany po usunięciu kontenera. Występuje również problem ze sterownikiem pamięci masowej vfs. Jeśli zapomnisz wyczyścić, woluminy zajmą miejsce na dysku.
źródło
Aby ocenić, ile magazynu używają niedziałające kontenery platformy Docker, możesz uruchomić:
--size
: wyświetla całkowite rozmiary plików (FYI: wyjaśnij kolumnę SIZE w "docker ps -s" i co oznacza słowo kluczowe "virtual" # 1520 ).--filter "status=exited"
: wyświetla tylko zatrzymane kontenery .Równoważnie możesz uruchomić:
docker container ls --filter "status=exited"
Możesz także użyć polecenia
docker system df
(wprowadzonego w Docker 1.13.0, styczeń 2017), aby zobaczyć użycie dysku dockera, np .:źródło