您可以使用该
nsenter命令在Docker容器的网络名称空间内的主机上运行命令。只需获取Docker容器的PID:
docker inspect -f '{{.State.Pid}}' container_name_or_id例如,在我的系统上:
$ docker inspect -f '{{.State.Pid}}' c70b53d9846615652并且一旦有了PID,就可以将其用作的target(
-t)选项的参数
nsenter。例如,要
netstat在容器网络名称空间内运行:
$ sudo nsenter -t 15652 -n netstatActive Internet connections (only servers)Proto Recv-Q Send-Q Local AddressForeign Address State tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
请注意,即使容器尚未
netstat安装,此方法也可以工作:
$ docker exec -it c70b53d98466 netstatrpc error: pre = 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包装的一部分)



