【问题标题】:Docker port forwarding create two processesDocker端口转发创建两个进程
【发布时间】:2017-09-17 08:06:38
【问题描述】:

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

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

【问题讨论】:

    标签: docker docker-compose lsof


    【解决方案1】:

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

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

    lsof -i 4 -i :8545
    

    此过滤器在端口和套接字上都应提供预期的输出。对于您最初的问题:从 docker 的角度来看,一切都很好。

    【讨论】:

      猜你喜欢
      • 2015-02-24
      • 1970-01-01
      • 1970-01-01
      • 2012-06-12
      • 2015-06-14
      • 1970-01-01
      • 2021-08-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多