从我的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)
为什么有两个进程在运行?
答案 0 :(得分:1)
您可以在PID
列下看到没有两个不同的流程。 lsof
列出多个条目的原因是因为该工具显示哪个进程处理了某些文件描述符,在您的情况下,单个进程有两个,因为它绑定在两个套接字上 - IPv4和IPv6(如TYPE
栏目所示。
您可以使用-i
参数两次限制输出:
lsof -i 4 -i :8545
这会在端口和套接字上进行过滤,它应该提供预期的输出。对于你原来的问题:从码头工作者的角度来看,一切都很好。