[解決済み] Docker: 実行中のDockerコンテナ内のオープンソケットをリストアップする方法はありますか?
2023-05-01 16:07:11
質問
実行中の docker コンテナ内で netstat を実行して、開いている TCP ソケットとその状態を確認したいと思います。しかし、私の docker コンテナのいくつかでは、netstat は利用できません。netstat を使わずに、docker API を使ってオープンソケット(とその状態、もしあればどの IP アドレスに接続されているか)を取得する方法はないでしょうか?(ちなみに、私のコンテナは docker-proxy を使用しており、直接ブリッジしていません)。
proc ファイルシステムを直接見ることはできると思いますが、その時点では、docker cp netstat をコンテナに入れて実行したほうがよいかもしれません。私は、docker がこのために提供するような機能があるかどうか疑問に思っていました。
どのように解決するのでしょうか?
を使用することができます。
nsenter
コマンドを使用すると、Dockerコンテナのネットワーク名前空間内のホスト上でコマンドを実行することができます。 DockerコンテナのPIDを取得するだけです。
docker inspect -f '{{.State.Pid}}' container_name_or_id
例えば、私のシステムで
$ docker inspect -f '{{.State.Pid}}' c70b53d98466
15652
そして、PIDを取得したら、それをターゲットの引数として使用します(
-t
) オプションの引数として使用します。
nsenter
. 例えば
netstat
をコンテナ・ネットワーク名前空間内で実行します。
$ sudo nsenter -t 15652 -n netstat
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
コンテナに
netstat
がインストールされていなくても動作することに注意してください。
$ docker exec -it c70b53d98466 netstat
rpc error: code = 13 desc = invalid header field value "oci runtime error: exec failed: container_linux.go:247: starting container process caused \"exec: \\\"netstat\\\": executable file not found in $PATH\"\n"
(
nsenter
の一部である
util-linux
パッケージ)
関連
-
[解決済み] Dockerコンテナの中から、マシンのローカルホストに接続するにはどうすればよいですか?
-
[解決済み] Docker Dockerコンテナからホストへのファイルコピー
-
[解決済み] ホストからDockerコンテナにファイルをコピーする方法は?
-
[解決済み] Dockerでコンテナを一覧表示する方法
-
[解決済み] Dockerイメージをコンテナとして実行する
-
[解決済み] 既に起動しているDockerコンテナに新しいTTYで入る方法
-
[解決済み] Dockerコンテナの実行と起動の違いについて
-
[解決済み】Dockerイメージとコンテナの違いは何ですか?
-
[解決済み] COMPOSE_HTTP_TIMEOUT のデフォルト値を docker-compose コマンドで上書きする方法
-
[解決済み] docker ps」と「docker container ls」は違うのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] docker unauthorized: 認証が必要 - ログインに成功するとプッシュされる
-
[解決済み] Log4j2 のログレベルをプログラムで変更する
-
[解決済み] docker-compose start "ERROR: No containers to start".
-
[解決済み] Docker CMDを複数回使用して、複数のサービスを実行することができないのはなぜですか?
-
[解決済み] DockerにSSH接続する方法は?
-
[解決済み] docker-compose 同じイメージに複数のインスタンスを作成する
-
[解決済み] Dockerのベースイメージを自作するには?
-
[解決済み] Docker ENTRYPOINTとKubernetesコンテナ仕様COMMANDの違い?
-
[解決済み] dockerfileからファイルを編集する
-
[解決済み] docker エラーです。/var/run/docker.sock: そのようなファイルまたはディレクトリはありません。