docker run busybox timeoutが機能しないのはなぜですか?

docker run busybox timeoutが機能しないのはなぜですか?

busyboxを使用して、docker内のネットワーク接続が正しく機能しているかどうかをすばやくテストするスクリプトを作成しようとしています。

これらのテストはすべて5秒後にタイムアウトに失敗しました(タイムアウトには30秒かかりました)。

docker run busybox wget -T 5 google.com
docker run busybox timeout 5 wget google.com
timeout 5 docker run busybox wget google.com

動作する唯一の方法は、対話的にbusyboxに入ることです。 5秒後に正常に終了しました。しかし、私は対話型ではなくプログラム的にこれをやろうとしています。

docker run -it busybox

/ # timeout 5 wget google.com
Terminated

対話型シェルではタイムアウトが機能しますが、非対話型シェルでは機能しないのはなぜですか?

私はUbuntu 18:04仮想マシンで実行しています。

ベストアンサー1

これはうまくいきます:-s9SIGKILLを使って送信します。

timeout -s9 5 docker run busybox wget google.com

おすすめ記事