管道输入到 docker 化的 socat 运行 存在于 docker 主机上的套接字上

Pipe input to dockerized socat run on socket present on docker host

我的目标是查询 Haproxy Runtime API using dockerized socat

以下命令 returns 空结果(/var/run/haproxy.stat 是位于 docker 主机上的 haproxy 套接字)

 echo "-h" | docker run  -a stdin -a stderr alpine/socat stdio /var/run/haproxy.stat

我试过通过volume添加haproxy socket,结果还是空的

echo "-h" | docker run  -a stdin -a stderr  -v /var/run/haproxy.stat:/var/run/haproxy.stat alpine/socat stdio /var/run/haproxy.stat

有效的命令是:

echo "-h" | docker run -i -a stdin -a stderr -a stdout -v /var/run/haproxy.stat:/var/run/haproxy.stat alpine/socat stdio /var/run/haproxy.stat

需要将 -a stdout-i 添加到 docker 运行

遵循 BMitch 的建议“尝试了以下命令,它也有效

echo "-h" | docker run -i -v /var/run/haproxy.stat:/var/run/haproxy.stat alpine/socat stdio /var/run/haproxy.stat