5.4 Docker网络名称空间的创建

1. Linux内核实现名称空间的创建

1.1 ip netns命令

可以借助ip netns命令来完成对 Network Namespace 的各种操作。ip netns命令来自于iproute安装包,一般系统会默认安装,如果没有的话,请自行安装。

**注意:**普通用户使用ip netns命令修改网络配置时需要 sudo 权限。

可以通过ip netns命令完成对Network Namespace 的相关操作,可以通过ip netns help查看命令帮助信息:

[root@docker ~]# ip netns help
Usage: ip netns list		//查看所有名称空间
       ip netns add NAME	//创建名称空间
       ip netns set NAME NETNSID		//管理
       ip [-all] netns delete [NAME]
       ip netns identify [PID]
       ip netns pids NAME
       ip [-all] netns exec [NAME] cmd ...
       ip netns monitor
       ip netns list-id

默认情况下,Linux系统中是没有任何 Network Namespace的,所以ip netns list命令不会返回任何信息。

1.2 创建Network Namespace

命令:ip netns add <name>
示例:

通过命令创建一个名为ns0的命名空间:
1.查看名称空间
[root@docker ~]# ip netns list

2.创建名称ns0名称空间
[root@docker ~]# ip netns add ns0

3.查看创建的名称空间
[root@docker ~]# ip netns list
ns0

4.重复创建会出现报错如下:
[root@docker ~]# ip netns add ns0
Cannot create namespace file "/var/run/netns/ns0": File exists

新创建的 Network Namespace 会出现在/var/run/netns/目录下。

[root@docker ~]# ls /var/run/netns/
ns0

每个 Network Namespace 会有自己独立的网卡、路由表、ARP 表、iptables 等和网络相关的资源。

1.3 操作Network Namespace

ip命令提供了ip netns exec子命令可以在对应的 Network Namespace 中执行命令。

查看新创建 Network Namespace 的网卡ns0的信息

[root@docker ~]# ip netns exec ns0 ip address
1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

新创建的 Network Namespace 中默认只有一个lo回环网卡,切该网卡为关闭状态,此时,尝试去 ping 该lo回环网卡,会提示Network is unreachable

[root@docker ~]# ip netns exec ns0 ping 127.0.0.1
connect: Network is unreachable

启用ns0的lo回环网卡:

1.开启网卡
[root@docker ~]# ip netns exec ns0 ip link set lo up

2.查看网卡是否开启
[root@docker ~]# ip netns exec ns0 ip add
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qd
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值