如何知道进程在docker下运行

Pro*_*mer 4 docker

我可能会问一个非常初学者级别的问题,但我需要一种方法来区分docker下的进程和框内非docker下的进程.'ps'命令输出让我感觉进程在linux框中运行,并且无法确认它是否在docker的引擎盖下.

在相同的上下文中,使用docker根文件系统启动docker下的进程是可行/可行的.

同样可行还是有其他解决办法?

Mat*_*att 7

您可以通过Docker主机上的进程树识别Docker进程.

到2924(haproxy)
的父进程是2902 到2902(haproxy-start)的父进程是2881
2881将由进程docker-container管理dockerd

要以树格式查看流程列表,请使用ps -ejHpstree(可在psmisc包中找到)

快速列出最新的运行情况 dockerd

/ # pstree $(pgrep dockerd)
dockerd-+-docker-containe-+-docker-containe-+-java---17*[{java}]
        |                 |                 `-8*[{docker-containe}]
        |                 |-docker-containe-+-sinopia-+-4*[{V8 WorkerThread}]
        |                 |                 |         |-{node}
        |                 |                 |         `-4*[{sinopia}]
        |                 |                 `-8*[{docker-containe}]
        |                 |-docker-containe-+-node-+-4*[{V8 WorkerThread}]
        |                 |                 |      `-{node}
        |                 |                 `-8*[{docker-containe}]
        |                 |-docker-containe-+-tinydns
        |                 |                 `-8*[{docker-containe}]
        |                 |-docker-containe-+-dnscache
        |                 |                 `-8*[{docker-containe}]
        |                 |-docker-containe-+-apt-cacher-ng
        |                 |                 `-8*[{docker-containe}]
        |                 `-20*[{docker-containe}]
        |-2*[docker-proxy---6*[{docker-proxy}]]
        |-docker-proxy---5*[{docker-proxy}]
        |-2*[docker-proxy---4*[{docker-proxy}]]
        |-docker-proxy---8*[{docker-proxy}]
        `-28*[{dockerd}]
Run Code Online (Sandbox Code Playgroud)

显示PID的父级(-s)

/ # pstree -aps 3744 
init,1      
  `-dockerd,1721 --pidfile=/run/docker.pid -H unix:///var/run/docker.sock --swarm-default-advertise-addr=eth0
      `-docker-containe,1728 -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --shim docker-containerd-shim ...
          `-docker-containe,3711 8d923b3235eb963b735fda847b745d5629904ccef1245d4592cc986b3b9b384a...
              `-java,3744 -Dzookeeper.log.dir=. -Dzookeeper.root.logger=INFO,CONSOLE -cp/zookeeper/bin/../build/cl
                  |-{java},4174
                  |-{java},4175
                  |-{java},4176
                  |-{java},4177
                  |-{java},4190
                  |-{java},4208
                  |-{java},4209
                  |-{java},4327
                  |-{java},4328
                  |-{java},4329
                  |-{java},4330
                  |-{java},4390
                  |-{java},4416
                  |-{java},4617
                  |-{java},4625
                  |-{java},4629
                  `-{java},4632
Run Code Online (Sandbox Code Playgroud)

显示docker的所有子代,包括名称空间更改(-S):

/ # pstree -apS $(pgrep dockerd) 
dockerd,1721 --pidfile=/run/docker.pid -H unix:///var/run/docker.sock --swarm-default-advertise-addr=eth0
  |-docker-containe,1728 -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --shim docker-containerd-shim ...
  |   |-docker-containe,3711 8d923b3235eb963b735fda847b745d5629904ccef1245d4592cc986b3b9b384a...
  |   |   |-java,3744,ipc,mnt,net,pid,uts -Dzookeeper.log.dir=. -Dzookeeper.root.logger=INFO,CONSOLE -cp/zookeeper/bin/../build/cl
  |   |   |   |-{java},4174
  |   |   |   |-{java},4175
  |   |   |   |-{java},4629
  |   |   |   `-{java},4632
  |   |   |-{docker-containe},3712
  |   |   `-{docker-containe},4152
  |   |-docker-containe,3806 49125f8274242a5ae244ffbca121f354c620355186875617d43876bcde619732...
  |   |   |-sinopia,3841,ipc,mnt,net,pid,uts                                                           
  |   |   |   |-{V8 WorkerThread},4063
  |   |   |   |-{V8 WorkerThread},4064
  |   |   |   |-{V8 WorkerThread},4065
  |   |   |   |-{V8 WorkerThread},4066
  |   |   |   |-{node},4062
  |   |   |   |-{sinopia},4333
  |   |   |   |-{sinopia},4334
  |   |   |   |-{sinopia},4335
  |   |   |   `-{sinopia},4336
  |   |   |-{docker-containe},3814
  |   |   `-{docker-containe},4038
  |   |-docker-containe,3846 2a756d94c52d934ba729927b0354014f11da6319eff4d35880a30e72e033c05d...
  |   |   |-node,3910,ipc,mnt,net,pid,uts lib/dnsd.js
  |   |   |   |-{V8 WorkerThread},4204
  |   |   |   |-{V8 WorkerThread},4205
  |   |   |   |-{V8 WorkerThread},4206
  |   |   |   |-{V8 WorkerThread},4207
  |   |   |   `-{node},4203
Run Code Online (Sandbox Code Playgroud)