私が少し混乱しているのは、lsof -i
Dockerコンテナ内で出力が生成されないことです。
はい(コンテナ内のすべてのコマンド/出力):
[1] root@ec016481cf5f:/# lsof -i
[1] root@ec016481cf5f:/# netstat -tulpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN -
tcp6 0 0 :::22 :::* LISTEN -
また、PIDまたはプログラム名がどのように表示されないかを確認してくださいnetstat
。fuser
また、混乱した出力を提供し、PIDも正確に見つけることができませんでした。
誰でもこれについて明らかにできますか?
- どのように置き換えることができますか
lsof -i
(見るため)プロセス名しかも! ) - なぜ出力
netstat
も壊れたのですか?
気づく:コンテナランタイムは、"ExecDriver": "native-0.1"
LXCの代わりにDockerの独自の実行層を使用します。
[1] root@ec016481cf5f:/# fuser -a4n tcp 22
Cannot stat file /proc/1/fd/0: Permission denied
Cannot stat file /proc/1/fd/1: Permission denied
Cannot stat file /proc/1/fd/2: Permission denied
Cannot stat file /proc/1/fd/3: Permission denied
Cannot stat file /proc/1/fd/255: Permission denied
Cannot stat file /proc/6377/fd/0: Permission denied
Cannot stat file /proc/6377/fd/1: Permission denied
Cannot stat file /proc/6377/fd/2: Permission denied
Cannot stat file /proc/6377/fd/3: Permission denied
Cannot stat file /proc/6377/fd/4: Permission denied
22/tcp:
(私は数字なのでそれに固執しませんPermission denied
。私を混乱させるのは最後の空のPIDのリストです22/tcp
。)
# lsof|awk '$1 ~ /^sshd/ && $3 ~ /root/ {print}'
sshd 6377 root cwd unknown /proc/6377/cwd (readlink: Permission denied)
sshd 6377 root rtd unknown /proc/6377/root (readlink: Permission denied)
sshd 6377 root txt unknown /proc/6377/exe (readlink: Permission denied)
sshd 6377 root 0 unknown /proc/6377/fd/0 (readlink: Permission denied)
sshd 6377 root 1 unknown /proc/6377/fd/1 (readlink: Permission denied)
sshd 6377 root 2 unknown /proc/6377/fd/2 (readlink: Permission denied)
sshd 6377 root 3 unknown /proc/6377/fd/3 (readlink: Permission denied)
sshd 6377 root 4 unknown /proc/6377/fd/4 (readlink: Permission denied)
sshd 6442 root cwd unknown /proc/6442/cwd (readlink: Permission denied)
sshd 6442 root rtd unknown /proc/6442/root (readlink: Permission denied)
sshd 6442 root txt unknown /proc/6442/exe (readlink: Permission denied)
sshd 6442 root 0 unknown /proc/6442/fd/0 (readlink: Permission denied)
sshd 6442 root 1 unknown /proc/6442/fd/1 (readlink: Permission denied)
sshd 6442 root 2 unknown /proc/6442/fd/2 (readlink: Permission denied)
sshd 6442 root 3 unknown /proc/6442/fd/3 (readlink: Permission denied)
sshd 6442 root 4 unknown /proc/6442/fd/4 (readlink: Permission denied)
sshd 6442 root 5 unknown /proc/6442/fd/5 (readlink: Permission denied)
接続されたユーザーからのいくつかの出力がありますが、これも正確に識別されますが、それはすべてです。lsof -i
特定の「オブジェクト」(インターネットソケットのみ)の種類を言うことは明らかに不可能です。
ベストアンサー1
(注:質問者がどのようにドッカーコンテナに入ったかは質問からは明確ではありません。仮説 docker exec -it CONTAINER bash
使用されました。 )
centos:7
docker バージョンに基づく docker イメージを使用すると、この問題が発生しました。1.9.0
この問題を克服するために実行したばかりです。
docker exec --privileged -it CONTAINER bash
付属していますのでご注意ください--privileged
。
これが必要な理由の私の素朴な理解:dockerはコンテナをより安全にするために努力しているようです。ここに録音してください。