Docker端口转发创建两个进程

时间:2017-09-17 08:06:38

标签: docker docker-compose lsof

从我的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)

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

1 个答案:

答案 0 :(得分:1)

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

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

lsof -i 4 -i :8545

这会在端口和套接字上进行过滤,它应该提供预期的输出。对于你原来的问题:从码头工作者的角度来看,一切都很好。