O comando antigo regular ps
não está ciente do docker, portanto, não é possível ver nomes de contêiner usando isso.
Existe uma ferramenta chamada sysdig que é realmente muito poderosa. Pode mostrar muitas coisas diferentes e é ciente do recipiente.
A única coisa que alguns podem considerar uma desvantagem é que o sysdig requer um módulo do kernel para funcionar. Ele coleta dados sobre o que os processos estão realmente fazendo e pode obter insights realmente significativos sobre a saúde e o status de qualquer coisa em um sistema.
Eu normalmente executo a ferramenta csysdig para obter uma ferramenta de tipos interativos curses.
A execução de sudo csysdig -pc
fornece a seguinte visualização dos processos:
Viewing: Processes For: whole machine
Source: Live System Filter: evt.type!=switch
PID VPID CPU USER TH VIRT RES FILE NET Container Command
27485 27485 2.00 root 1 132M 37M 0 0.00 host csysdig -pc
29099 7 0.50 root 18 3G 369M 0 0.00 boss_twilight java -XX:MaxPermSize=128M
30969 241 0.50 42 2G 325M 0 2.18K gitlab sidekiq 3.3.0 gitlab-rails
30137 93 0.50 52 1G 42M 0 274.50 splunk mongod --dbpath=/opt/splun
29236 16 0.50 root 30 3G 1G 0 0.00 bossmc_forge-1.7.10 java -XX:MaxPermSize=128M
32654 7 0.50 root 1 96M 12M 0 18.84K bossmc_lanannounce python lanannounce.py
30965 237 0.50 3 38M 2M 7K 183.50 gitlab /opt/gitlab/embedded/bin/r
28597 28597 0.00 root 5 106M 464K 0 0.00 host /usr/bin/docker-proxy -pro
31029 270 0.00 1 27M 2M 0 0.00 gitlab postgres: stats collector
28542 28542 0.00 root 6 114M 468K 0 0.00 host /usr/bin/docker-proxy -pro
28500 28500 0.00 root 5 42M 444K 0 0.00 host /usr/bin/docker-proxy -pro
28517 28517 0.00 root 5 106M 580K 0 0.00 host /usr/bin/docker-proxy -pro
28366 28366 0.00 root 5 42M 176K 0 0.00 host /usr/bin/docker-proxy -pro
17675 17675 0.00 root 1 19M 1M 0 0.00 host /lib/systemd/systemd-login
28409 28409 0.00 root 5 42M 420K 0 0.00 host /usr/bin/docker-proxy -pro
28634 28634 0.00 root 6 50M 388K 0 0.00 host /usr/bin/docker-proxy -pro
1 1 0.00 root 1 28M 3M 0 0.00 host /lib/systemd/systemd --sys
31289 282 0.00 1 19M 3M 6 0.00 gitlab /bin/bash /opt/gitlab/embe
28613 28613 0.00 root 5 106M 404K 0 0.00 host /usr/bin/docker-proxy -pro
30941 223 0.00 root 1 4M 1M 0 0.00 gitlab runsv logrotate
29409 12 0.00 root 1 20M 12K 0 0.00 auto-proxy /bin/bash -c source ".prof
28643 28643 0.00 root 5 106M 500K 0 0.00 host /usr/bin/docker-proxy -pro
31696 353 0.00 2 374M 107M 0 0.00 gitlab unicorn worker[3] -D -E pr
668 668 0.00 root 1 14M 180K 0 0.00 host /sbin/agetty --noclear tty
30948 230 0.00 root 1 4M 584K 0 0.00 gitlab svlogd -tt /var/log/gitlab
28508 28508 0.00 root 6 115M 764K 0 0.00 host /usr/bin/docker-proxy -pro
659 659 0.00 root 1 4M 176K 0 0.00 host /usr/sbin/acpid
F1Help F2Views F4FilterF5Echo F6Dig F7LegendF8ActionsF9Sort F12SpectroCTRL+FSearchp Pause 1/146(0.7%)
Isso mostra onde cada processo está sendo executado. Por exemplo, eu tenho alguns servidores de minecraft. bossmc_forge-1.7.10
é um desses servidores e está executando uma JVM que é o meu servidor. Eu também tenho um contêiner gitlab e um contêiner, entre outros.
O comando csysdig está muito mais próximo do topo do que do ps, mas pode fazer um pouco mais. No geral, o sysdig tem uma curva de aprendizado, mas estou me acostumando a usá-lo mais e mais com o tempo. Pequenas coisas como ter consciência sobre contêineres são um grande passo para torná-lo uma ótima ferramenta.