docker容器namespace点对点通信

起两个container不给netdev

[root@docker_server ~]# docker run -it --name ub1 --network none --rm docker.testdomain.com/username/ubuntu:net-tools   
root@744961d5f44a:/# 
root@744961d5f44a:/# 
root@744961d5f44a:/# ifconfig 
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

root@744961d5f44a:/# [root@docker_server ~]# 
[root@docker_server ~]# docker run -it --name ub2 --network none --rm docker.testdomain.com/username/ubuntu:net-tools  
root@435a66dbd5b2:/# 
root@435a66dbd5b2:/# ifconfig 
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

查看两个container对应的pid,链接到/var/run/netns/[pid]

root@435a66dbd5b2:/# [root@docker_server ~]# 
[root@docker_server ~]# docker inspect -f '{{.State.Pid}}' ub1
4584
[root@docker_server ~]# docker inspect -f '{{.State.Pid}}' ub2
4669

[root@docker_server ~]# ln -sf /proc/4584/ns/net /var/run/netns/4584 
[root@docker_server ~]# ln -sf /proc/4669/ns/net /var/run/netns/4669

创建对应pid的ns,并给ip路由。

[root@docker_server ~]# ip link add A1 type veth peer name B1
[root@docker_server ~]# ip link set A1 netns 4584
[root@docker_server ~]# ip link set B1 netns 4669
[root@docker_server ~]# ip netns exec 4584 ip addr add 10.1.1.1/32 dev A1
[root@docker_server ~]# ip netns exec 4669 ip addr add 10.1.1.2/32 dev B1
[root@docker_server ~]# ip netns exec 4584 ip route add 10.1.1.2/32 dev A1
[root@docker_server ~]# ip netns exec 4669 ip route add 10.1.1.1/32 dev B1

切到container看接口给进去没,ping一下

[root@docker_server ~]# docker attach ub1
root@744961d5f44a:/# 
root@744961d5f44a:/# 
root@744961d5f44a:/# 
root@744961d5f44a:/# ifconfig 
A1        Link encap:Ethernet  HWaddr b2:8d:5f:cf:e8:72  
          inet addr:10.1.1.1  Bcast:0.0.0.0  Mask:255.255.255.255
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

root@744961d5f44a:/# ip route show 
10.1.1.2 dev A1  scope link 
root@744961d5f44a:/# ping 10.1.1.2
PING 10.1.1.2 (10.1.1.2) 56(84) bytes of data.
64 bytes from 10.1.1.2: icmp_seq=1 ttl=64 time=0.242 ms
64 bytes from 10.1.1.2: icmp_seq=2 ttl=64 time=0.112 ms
^C
--- 10.1.1.2 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.112/0.177/0.242/0.065 ms
root@744961d5f44a:/# 
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 五、Docker 端口映射 无论如何,这些 ip 是基于本地系统的并且容器的端口非本地主机是访问不到的。此外,除了...
    R_X阅读 1,800评论 0 7
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,991评论 19 139
  • 你有没有这种症状,因为某件小事心情变得很糟,不想说话不想搭理人,觉得担子好重快要垮掉,感觉所有的烦恼一下子...
    花开有声阅读 117评论 1 0
  • 一、学习与实践 1.付出不亚于任何人的努力 2.要谦虚,不要骄傲 3.要每天反省 4.活着,就要感谢 5.积善行,...
    马辰良阅读 171评论 0 1
  • 忙得每一分钟都像打仗,但这从来没阻挡我拥有更高浓度的人生。
    千浅飞阅读 249评论 0 0