Edited at

netcat で /var/run/docker.sock を叩く

More than 1 year has passed since last update.


netcat で tcp を bash から叩く

netcat はシェルの標準入出力から TCP|UDP を叩くことができるコマンドです。

HTTP サーバや HTTP クライアントも作ることができます。

-U オプションを使えば unix domain socket も叩くことができます。


HTTP サーバ

#!/bin/bash

nc -l 8080 -q0 << 'EOF'
HTTP/1.1 200 Ok
Connection: close
content-type: plain/text
Hello World

EOF

-q0 で STDIN の EOF を検出したら0秒で終了します


HTTP クライアント

#!/bin/bash

nc localhost 8080 -q1 <<'EOF'
GET / HTTP/1.1
Host: localhost:8080

EOF

サーバの応答を待つために 1 秒だけ待っています


unix domain socket を叩く

/var/run/docker.sock も叩けます

#!/bin/bash

nc -U /var/run/docker.sock -q1 <<'EOF'
GET /containers/json?all=1&size=1 HTTP/1.1
Host: localhost:8080

EOF

デバッグなどに便利ですね


参考