查看运行的容器
# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 5a1c7a7a8eae loongsongd/debian:v10-loongarch64 "/bin/bash" 2 hours ago Up 2 hours sleepy_dhawan
查看指定容器的Pid
# docker inspect 5a1c7a7a8eae | grep Pid "Pid": 10972, "PidMode": "", "PidsLimit": null,
查看指定Pid 使用到的namespace
# lsns | grep 10972 4026532826 mnt 3 10972 root /bin/bash 4026532827 uts 3 10972 root /bin/bash 4026532828 ipc 3 10972 root /bin/bash 4026532829 pid 3 10972 root /bin/bash 4026532831 net 3 10972 root /bin/bash
导出指定容器(Pid)的net namespace 到宿主机
若netns 目录不存在则创建一个 # mkdir -p /var/run/netns # ln -s /proc/10972/ns/net /var/run/netns/debian
查看导出的net namespace
# ip netns debian(id: 0)
在debian这个net namespace 执行网络命令
# ip netns exec debian ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever 2: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000 link/sit 0.0.0.0 brd 0.0.0.0 46: eth0@if47: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0 inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0 valid_lft forever preferred_lft forever