您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Docker:以任何方式列出正在运行的Docker容器中的打开套接字?

Docker:以任何方式列出正在运行的Docker容器中的打开套接字?

您可以使用该nsenter命令在Docker容器的网络名称空间内的主机上运行命令。只需获取Docker容器的PID:

docker inspect -f '{{.State.Pid}}' container_name_or_id

例如,在我的系统上:

$ docker inspect -f '{{.State.Pid}}' c70b53d98466
15652

并且一旦有了PID,就可以将其用作的target(-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"

nsenterutil-linux包装的一部分)

其他 2022/1/1 18:15:31 有558人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶