2016-10-28 21 views
5

Po zalogowaniu do pojemnika przez używane polecenia -Jak rejestrować wszystkie procesy działające w kontenerze Docker?

docker exec -it <container_name> 

Jak sprawdzić dla wszystkich przetworzonych działa wewnątrz kontenera? Czy "ps aux" to właściwy sposób? Czy są jakieś lepsze alternatywne podejścia?

Dzięki

+1

do Twojego polecenia umieścić to w końcu: bash następnie raz w środku, tak ps działa .... Również spróbuj ps eafww do Szerokie, wyświetlamy –

Odpowiedz

6

Jest możliwe, aby pokazać wszystkie uruchomione procesy wewnątrz kontenera bez logowania do terminala za pomocą następującego polecenia. Oczywiście, to jest tak, jak można zobaczyć przy użyciu ps -eaf, więc po prostu dodaj go do docker exec.

bash $ sudo docker exec -it test1 ps -eaf 
PID USER  TIME COMMAND 
    1 root  0:00 sh 
    7 root  0:00 sh 
    60 root  0:00 /bin/sh 
    67 root  0:00 /bin/sh 
    84 root  0:00 ps -eaf 

Jak już wspomniano, jeśli jesteś już wewnątrz pojemnika, następnie wystarczy użyć polecenia ps -eaf zobaczyć uruchomionych procesów.

Przy okazji, zaleca się posiadanie jednej aplikacji/procesu dla każdego pojemnika.

+0

Dzięki, o posiadaniu jednego procesu aplikacji za pojemnik. Tak więc mam aplikację python, która po prostu wywołuje plik JAR Java, więc istnieje jeden proces Pythona i jeden proces java, który jest wykonywany przez krótki czas. Czy powinienem je uruchamiać na różnych pojemnikach, czy będzie to przesada uruchamiająca różne pojemniki? –

+0

To co wymieniłem, to zalecany sposób. Kontener zatrzymuje się automatycznie po zakończeniu wyznaczonego procesu. Użytkownik musi zatrzymać kontener jawnie tylko w przypadku długotrwałych procesów/kontenerów. Więc nie nadmierne zabijanie. Jeśli to możliwe, możesz uruchomić proces w dwóch kontenerach. Przy okazji, jeśli ta odpowiedź jest pomocna, rozważ zaakceptowanie jej. – Rao

7

Możesz użyć dedykowanej komendy top, aby wyświetlić listę procesów w kontenerze dokera, niezależnie od systemu operacyjnego w kontenerze.

docker top <container>