我正在尝试使用以下命令将 unix 套接字公开为 tcp 套接字:
nc -lkv 44444 | nc -Uv /var/run/docker.sock
当我尝试访问时localhost:44444/containers/json
从浏览器中,它不会加载任何内容,但保持连接打开(加载的东西不断旋转),但控制台(由于 -v 标志)显示正确的 http 响应。
关于如何让它发挥作用有什么想法吗?
PS:我知道我可以使用 socat,或者只是告诉 docker 也监听 tcp 套接字,但我正在使用项目原子 vm 映像,它不会让我修改除 /home 之外的任何内容。
您仅重定向传入数据,而不重定向传出数据。
尝试:
mkfifo myfifo
nc -lkv 44444 <myfifo | nc -Uv /var/run/docker.sock >myfifo
See http://en.wikipedia.org/wiki/Netcat#Proxying http://en.wikipedia.org/wiki/Netcat#Proxying
Edit:在脚本中,您希望随机生成 fifo 的名称,并在打开后将其删除:
FIFONAME=`mktemp -u`
mkfifo $FIFONAME
nc -lkv 44444 < $FIFONAME | nc -Uv /var/run/docker.sock > $FIFONAME &
rm $FIFONAME
fg
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)