network namespace是虚拟化网络技术和容器化技术中很重要的资源隔离技术,负责网络资源的隔离。但是你会发现通过常规方法
ip netns list
查不到容器定义的网络命名空间。
在 docker 中,默认情况下不会将容器network namespace 添加到 linux 运行时数据中(从 /run 挂载到 /var/run)。
来看看如何解决这个问题:
1. 查看主机上运行的容器
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b2246463d5ae nginx:latest "/docker-entrypoin..." 21 hours ago Up 21 hours 0.0.0.0:27777->80/tcp mnginx
2. 获取 container 进程ID,PID
docker inspect --format '{ { .State.Pid }}' b2246463d5ae