cra*_*urn 5 sockets linux netcat docker
我试图使用此命令将unix套接字公开为tcp套接字:
nc -lkv 44444 | nc -Uv /var/run/docker.sock
Run Code Online (Sandbox Code Playgroud)
当我尝试localhost:44444/containers/json
从浏览器访问时,它不会加载任何东西,但保持连接打开(加载东西不断旋转),但控制台(因为-v标志)显示正确的http响应.
关于如何使这个工作的任何想法?
PS:我知道我可以使用socat,或者只是告诉docker也可以监听tcp套接字,但是我使用的是项目的原始vm图像,除了/ home之外它不会让我修改任何东西.
pqn*_*net 12
您只是重定向传入数据,而不是传出数据.尝试:
mkfifo myfifo
nc -lkv 44444 <myfifo | nc -Uv /var/run/docker.sock >myfifo
Run Code Online (Sandbox Code Playgroud)
见http://en.wikipedia.org/wiki/Netcat#Proxying
编辑:在脚本中,您需要随机生成fifo的名称,并在打开后将其删除:
FIFONAME=`mktemp -u`
mkfifo $FIFONAME
nc -lkv 44444 < $FIFONAME | nc -Uv /var/run/docker.sock > $FIFONAME &
rm $FIFONAME
fg
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7121 次 |
最近记录: |