docker中的Netstat不显示作为其他用户启动的进程的PID

docker中的Netstat不显示作为其他用户启动的进程的PID,docker,netstat,linux-capabilities,Docker,Netstat,Linux Capabilities,我正在Docker中的jamq用户下运行网络服务器 [root@12af450e8259 /]# su jamq -c '/opt/jboss-amq-7-i0/bin/artemis-service start' Starting artemis-service artemis-service is now running (25) 然后,我尝试使用netstat作为根目录列出进程及其侦听套接字,但对于以不同用户身份运行的进程,我只看到-而不是PID [root@12af450e8259 /

我正在Docker中的jamq用户下运行网络服务器

[root@12af450e8259 /]# su jamq -c '/opt/jboss-amq-7-i0/bin/artemis-service start'
Starting artemis-service
artemis-service is now running (25)
然后,我尝试使用netstat作为根目录列出进程及其侦听套接字,但对于以不同用户身份运行的进程,我只看到-而不是PID

[root@12af450e8259 /]# netstat -nlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1/sshd              
tcp        0      0 0.0.0.0:1883            0.0.0.0:*               LISTEN      -                   
tcp        0      0 127.0.0.1:8161          0.0.0.0:*               LISTEN      -                   
tcp        0      0 0.0.0.0:5445            0.0.0.0:*               LISTEN      -                   
tcp        0      0 0.0.0.0:5672            0.0.0.0:*               LISTEN      -                   
tcp        0      0 0.0.0.0:61613           0.0.0.0:*               LISTEN      -                   
tcp        0      0 0.0.0.0:61616           0.0.0.0:*               LISTEN      -                   
tcp6       0      0 :::22                   :::*                    LISTEN      1/sshd          
我尝试在Docker命令行中添加-privileged,这就解决了问题。然后我想使用更细粒度的功能,但我找不到合适的功能

我试过了

docker run --rm --cap-add=SYS_ADMIN --cap-add=NET_ADMIN -it myimage:latest bash

但这没有帮助。

所需的功能是-cap add=SYS\u PTRACE。在Bug中有各种报告称netstat需要此功能。例如,-SELinux正在阻止/usr/bin/netstat使用“sysptrace”功能

因此,正确的命令是

docker run --rm --cap-add=SYS_PTRACE -it myimage:latest bash
[root@f9c4b5fa7d1c /]# netstat -nlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:5672            0.0.0.0:*               LISTEN      22/java             
tcp        0      0 0.0.0.0:61613           0.0.0.0:*               LISTEN      22/java             
tcp        0      0 0.0.0.0:61616           0.0.0.0:*               LISTEN      22/java             
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      92/sshd             
tcp        0      0 0.0.0.0:1883            0.0.0.0:*               LISTEN      22/java             
tcp        0      0 127.0.0.1:8161          0.0.0.0:*               LISTEN      22/java             
tcp        0      0 0.0.0.0:5445            0.0.0.0:*               LISTEN      22/java             
tcp6       0      0 :::22                   :::*                    LISTEN      92/sshd             
Active UNIX domain sockets (only servers)
Proto RefCnt Flags       Type       State         I-Node   PID/Program name     Path