Docker端口转发创建两个进程
从我的Docker容器中,我转发端口Docker端口转发创建两个进程,docker,docker-compose,lsof,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
,如下所示
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
这会在端口和套接字上进行过滤,从而提供预期的输出。对于你最初的问题:从码头工人的角度来看,一切都很好