创建Docker容器后本来应该有新的命名空间(如果有独立网络的话),那么可以通过 ip netns 命令查看到命名空间,但是实际上却看不到。
查过资料才发现,ip netns 只能查看到 /var/run/netns 下面的网络命名空间。docker 不像OpenStack neutron 会自动在这个文件创建命名空间名字,需要手动创建。
创建方法是:
pid=`docker inspect -f '{{.State.Pid}}' $container_id` ln -s /proc/$pid/ns/net /var/run/netns/$container_id
参考资料:
ip netns使用:http://blog.csdn.net/ptmozhu/article/details/52386275
原因:http://blog.csdn.net/liuliuzi_hz/article/details/51699932
http://blog.csdn.net/liuliuzi_hz/article/category/6065584
http://blog.csdn.net/liuliuzi_hz/article/details/50601521
http://blog.csdn.net/liuliuzi_hz/article/details/50594595
http://blog.csdn.net/liuliuzi_hz/article/details/50593613
容器配置:http://blog.csdn.net/liuliuzi_hz/article/details/50593599
http://unix.stackexchange.com/questions/113530/how-to-find-out-namespace-of-a-particular-process
http://blog.csdn.net/smallfish1983/article/details/38701067