docker net namespace

简介

看到很多理论里讲,docker是依赖了各种namespace实现隔离,但是使用
ip netns list 命令啥网络命名空间也看不到,难道是被忽悠了,docker 的网络实现没有使用net namespace?让人很困惑

寻根

实际上docker 的确使用了netns,只不过docker 创建的netns不在默认的/var/run/netns 目录下,导致ip工具查询不到

链接docker netns到系统默认目录

ln -s /var/run/docker/netns  /var/run/netns 

执行完上面的命令再看看,可以查询到所有的网络命名空间了

[root@codeB operator]# ip netns list
0e11a0755d03 (id: 9)
56e033856677 (id: 8)
5264fb718123 (id: 7)
7acf381fb38d (id: 6)
2d8a1cdf604f (id: 5)
a7a18d4abc69 (id: 4)
cf11b9f2ed1d (id: 3)
e374cc755516 (id: 2)
ca50d5d3aaba (id: 1)
43442f0d3bcb (id: 0)
default

查看下netns下面的网络设备信息

[root@codeB operator]# ip netns exec  43442f0d3bcb ip a
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
3: eth0@if4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1440 qdisc noqueue state UP group default 
    link/ether 12:cc:34:44:2f:7d brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 10.244.194.9/32 scope global eth0
       valid_lft forever preferred_lft forever
4: tunl0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000
    link/ipip 0.0.0.0 brd 0.0.0.0

参考

https://stackoverflow.com/questions/31265993/docker-networking-namespace-not-visible-in-ip-netns-list

©️2020 CSDN 皮肤主题: 创作都市 设计师:CSDN官方博客 返回首页