diff --git a/advanced_network/how_connect.md b/advanced_network/how_connect.md index dd165dc..6873ab2 100644 --- a/advanced_network/how_connect.md +++ b/advanced_network/how_connect.md @@ -28,7 +28,8 @@ $ sudo docker run -i -t --rm --net=none base /bin/bash root@63f36fc01b5f:/# ``` 再开启一个新的终端,查找这个容器的进程id,然后创建它的命名空间,后面的ip netns会用到 -```$ sudo docker inspect -f '{{.State.Pid}}' 63f36fc01b5f +``` +$ sudo docker inspect -f '{{.State.Pid}}' 63f36fc01b5f 2778 $ pid=2778 $ sudo mkdir -p /var/run/netns @@ -57,4 +58,4 @@ $ sudo ip netns exec $pid ip route add default via 172.17.42.1 ``` 自此,你又可以像平常一样使用网络了 当你退出shell后,docker清空容器,容器的eth0随网络命名空间一起被摧毁,A 接口也被自动从docker0取消注册。不用其他命令,所有东西都被清理掉了! -注意ip netns exec命令,它可以让我们像root一样配置网络命名空间。但在容器内部无法使用,因为统一的安全策略,docker限制容器进程配置自己的网络。使用ip netns exec 可以让我们不用设置--privileged=true就可以完成一些可能带来危险的操作。 \ No newline at end of file +注意ip netns exec命令,它可以让我们像root一样配置网络命名空间。但在容器内部无法使用,因为统一的安全策略,docker限制容器进程配置自己的网络。使用ip netns exec 可以让我们不用设置--privileged=true就可以完成一些可能带来危险的操作。