Docker端口转发创build两个进程

从我的Docker容器转发端口8545如下

 ports: - '127.0.0.1:8545:8545' 

运行容器后,如果运行lsof -i :8545它会显示两个具有相同PID的进程。

 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME vpnkit 6576 Admin 27u IPv4 0xfdda6e6d5013cf77 0t0 TCP localhost:8545 (LISTEN) vpnkit 6576 Admin 28u IPv6 0xfdda6e6d4509106f 0t0 TCP localhost:8545 (LISTEN) 

为什么有两个进程在运行?

PID列下可以看到没有两个不同的进程。 lsof列出多个条目的原因是因为该工具向您显示哪个进程已经处理了某些文件描述符,在您的情况下,单个进程有两个,因为它绑定在两个套接字上 – IPv4和IPv6(如下TYPE列)。

您可以通过两次使用-i参数来限制输出:

 lsof -i 4 -i :8545 

这两个filter,端口和套接字应该给予预期的输出。 对于你原来的问题:从docker的angular度来看,一切都很好。