1. 获取容器进程id
docker inspect -f '{{.State.Pid}}' 容器id或名称
nerdctl inspect -f '{{.State.Pid}}' 容器id
2. 使用nsenter进入容器的命名空间
nsenter --target <container_pid> --mount --uts --ipc --net --pid
将 <container_pid> 替换为你从 Docker 获取的 PID。
这个命令的各部分含义如下:
--target <container_pid>:指定要附加的容器的 PID。
--mount:进入容器的挂载命名空间。
--uts:进入容器的 UNIX 时光戳命名空间(hostname)。
--ipc:进入容器的进程间通信命名空间。
--net:进入容器的网络命名空间。
--pid:进入容器的进程命名空间。
范例用法:
若仅仅想使用宿主机命令调试网络
nsenter --target <container_pid> --net -- /bin/sh
网友评论