1. 添加两个平行空间
[root@Docker1 ~]# ip netns add namespaceA
[root@Docker1 ~]# ip netns add namespaceB
#注释:#ip netns add为固定的添加格式#namespaceA/namespace为平行空间的名称
  1. 开启平行空间的lo网卡
[root@Docker1 ~]# ip netns exec namespaceA ip link set dev lo up
[root@Docker1 ~]# ip netns exec namespaceB ip link set dev lo up
#验证以下有没有开启成功
#验证namespaceA是否开启成功
[root@Docker1 ~]# ip netns exec namespaceA ping 127.0.0.1
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.071 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.031 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.030 ms
--- 127.0.0.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2000ms
rtt min/avg/max/mdev = 0.030/0.044/0.071/0.019 ms
#验证namespaceB是否开启成功
[root@Docker1 ~]# ip netns exec namespaceB ping 127.0.0.1
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.069 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.031 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.030 ms
--- 127.0.0.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1999ms
rtt min/avg/max/mdev = 0.030/0.043/0.069/0.018 ms
  1. 创建两对网卡
#将veth0和veth1连接
[root@Docker1 ~]# ip link add veth0 type veth peer name veth1
#将veth2和veth3连接
[root@Docker1 ~]# ip link add veth2 type veth peer name veth3
#查看有没有成功
[root@Docker1 ~]# ip a
……link/ether 52:54:00:a1:e1:bf brd ff:ff:ff:ff:ff:ff
5: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default link/ether 02:42:6a:5a:9a:ba brd ff:ff:ff:ff:ff:ffinet 172.17.0.1/16 brd 172.17.255.255 scope global docker0valid_lft forever preferred_lft forever
6: veth1@veth0: <BROADCAST,MULTICAST,M-DOWN> mtu 1500 qdisc noop state DOWN group default qlen 1000link/ether 42:3d:23:0b:6d:d3 brd ff:ff:ff:ff:ff:ff
7: veth0@veth1: <BROADCAST,MULTICAST,M-DOWN> mtu 1500 qdisc noop state DOWN group default qlen 1000link/ether 16:7b:1b:ef:3a:04 brd ff:ff:ff:ff:ff:ff
8: veth3@veth2: <BROADCAST,MULTICAST,M-DOWN> mtu 1500 qdisc noop state DOWN group default qlen 1000link/ether 2a:02:be:39:19:ac brd ff:ff:ff:ff:ff:ff
9: veth2@veth3: <BROADCAST,MULTICAST,M-DOWN> mtu 1500 qdisc noop state DOWN group default qlen 1000link/ether 3e:eb:80:06:b7:57 brd ff:ff:ff:ff:ff:ff
  1. 将网卡添加到平行空间中
#将veth1添加到namespaceA中
[root@Docker1 ~]# ip link set veth1 netns namespaceA
#将veth3添加到namespaceB中
[root@Docker1 ~]# ip link set veth3 netns namespaceB
#验证是否成功
#验证namespaceA是否添加成功
[root@Docker1 ~]# ip netns exec namespaceA ip a
……
6: veth1@if7: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000link/ether 42:3d:23:0b:6d:d3 brd ff:ff:ff:ff:ff:ff link-netnsid 0
#验证namespaceB是否添加成功
[root@Docker1 ~]# ip netns exec namespaceB ip a
……
8: veth3@if9: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000link/ether 2a:02:be:39:19:ac brd ff:ff:ff:ff:ff:ff link-netnsid 0
  1. 给这两对网卡分别设置IP、网关
#####给物理机的两个网卡设置分别设置IP#####
[root@Docker1 ~]# ifconfig veth0 10.1.1.1/24
[root@Docker1 ~]# ifconfig veth2 20.1.1.1/24
#验证IP是否设置成功
#验证veth0的IP
[root@Docker1 ~]# ip a | grep veth0
7: veth0@if6: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state LOWERLAYERDOWN group default qlen 1000inet 10.1.1.1/24 brd 10.1.1.255 scope global veth0
#验证veth2的IP
[root@Docker1 ~]# ip a | grep veth2
9: veth2@if8: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state LOWERLAYERDOWN group default qlen 1000inet 20.1.1.1/24 brd 20.1.1.255 scope global veth2
#####给两个平行空间设置IP#####
[root@Docker1 ~]# ip netns exec namespaceA ifconfig veth1 10.1.1.2/24 up
[root@Docker1 ~]# ip netns exec namespaceB ifconfig veth3 20.1.1.2/24 up
#验证平行空间的IP是否设置成功
#验证namespaceA平行空间中的veth1的IP是否成功
[root@Docker1 ~]# ip netns exec namespaceA ip a | grep veth1
6: veth1@if7: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000inet 10.1.1.2/24 brd 10.1.1.255 scope global veth1
#验证namespaceB平行空间中的veth3的IP是否成功
[root@Docker1 ~]# ip netns exec namespaceB ip a | grep veth3
8: veth3@if9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000inet 20.1.1.2/24 brd 20.1.1.255 scope global veth3
#####给两个平行空间设置网关#####
[root@Docker1 ~]# ip netns exec namespaceA route add default gw 10.1.1.1
[root@Docker1 ~]# ip netns exec namespaceB route add default gw 20.1.1.1
#验证平行空间中的网关是否这只成功
#验证namespaceA平行空间中的网关是否设置成功
[root@Docker1 ~]# ip netns exec namespaceA route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.1.1.1        0.0.0.0         UG    0      0        0 veth1
10.1.1.0        0.0.0.0         255.255.255.0   U     0      0        0 veth1
#验证namespaceB平行空间中的网关是否设置成功
[root@Docker1 ~]# ip netns exec namespaceB route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         20.1.1.1        0.0.0.0         UG    0      0        0 veth3
20.1.1.0        0.0.0.0         255.255.255.0   U     0      0        0 veth3
  1. 在物理机中添加路由转发规则
[root@Docker1 ~]# vim /etc/sysctl.conf#末行处添加路由转发规则net.ipv4.ip_forward = 1
[root@Docker1 ~]# sysctl -p    #让路由转发规则生效net.ipv4.ip_forward = 1
  1. 验证
#验证namespaceA平行空间是否能ping通namespaceB平行空间的IP
[root@Docker1 ~]# ip netns exec namespaceA ping 20.1.1.2
PING 20.1.1.2 (20.1.1.2) 56(84) bytes of data.
64 bytes from 20.1.1.2: icmp_seq=1 ttl=63 time=0.187 ms
64 bytes from 20.1.1.2: icmp_seq=2 ttl=63 time=0.048 ms
64 bytes from 20.1.1.2: icmp_seq=3 ttl=63 time=0.049 ms
--- 20.1.1.2 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1999ms
rtt min/avg/max/mdev = 0.048/0.094/0.187/0.066 ms
#验证namespaceB平行空间是否能ping通namespaceA平行空间的IP
[root@Docker1 ~]# ip netns exec namespaceB 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=63 time=0.078 ms
64 bytes from 10.1.1.2: icmp_seq=2 ttl=63 time=0.050 ms
64 bytes from 10.1.1.2: icmp_seq=3 ttl=63 time=0.051 ms
--- 10.1.1.2 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2000ms
rtt min/avg/max/mdev = 0.050/0.059/0.078/0.015 ms

Docker的平行空间通信相关推荐

  1. docker容器虚拟化技术_Docker,虚拟机和容器的全面介绍

    docker容器虚拟化技术 by shota jolbordi 通过Shota Jolbordi Docker has been a buzzword for tech people for the ...

  2. LBE平行空间的技术实现

    作者:方振宇 链接:https://www.zhihu.com/question/42998620/answer/95418981 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转载 ...

  3. docker 网络方案--分析

    这篇文章主要是弥补自己网络方面的知识,不提供参考意见 关于SDN和容器 作为近年来比较热的一个概念,众所周知SDN是Software Defined Network的缩写,即软件定义网络.但不同的人对 ...

  4. 搭建宝塔面板 安装docker 安装青龙面板及xdd-plus机器人 对接诺兰等教程

    一 .宝塔安装 yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0. ...

  5. Docker及其使用思维导图

    学习Docker的使用. 包括Docker的一些命令,Docker容器的使用,Docker镜像的使用,Docker容器连接等内容. 各种思维导图下载地址 Docker使用思维导图及各各种命令 Dock ...

  6. 聊聊 Docker 和 虚拟化技术

    参考docker 运行效率_这么火的Docker,到底是什么?_魔王不造反的博客-CSDN博客 什么是Docker? 上周二,陈工收到领导的工作指示,需要他把.net开发的网站和php开发的网站安装在 ...

  7. 明翰Docker笔记V0.1(持续更新)

    文章目录 前言 什么是Docker `镜像` `容器` `镜像制作` 手动 自动 镜像管理 `整合Spring Boot` 其他 整合Jenkins 安装 其他 前言 在石器时代,如果我们要部署一个应 ...

  8. Docker应用下滑、近七成开发者有安全疑虑,中国云原生用户调查报告来了!

    数字化转型浪潮下,云原生技术的发展突飞猛进.2021年,云原生技术领域的建设投入.集群规模持续走高,用户应用及软件发布也更加频繁.基于微服务架构构建新应用是主要建设方式,已有54.81%的用户使用微服 ...

  9. Docker中的网络详解

    本节主要是介绍Docker默认的网络行为,包含创建的默认网络类型以及如何创建用户自定义网络,也会介绍如何在单一主机或者跨主机集群上创建网络的资源需求. 1.默认网络 当你安装了docker,她自动创建 ...

最新文章

  1. AppBaseJs 类库 网上常用的javascript函数及其他js类库写的
  2. 一种可移除点云中动态目标的鲁棒方法
  3. [Nand Flash]软件ECC
  4. fix--向零方向取整
  5. redis stream持久化_一文了解:Redis的RDB持久化
  6. nginx 修改配置文件使之支持pathinfo,且隐藏index.php
  7. 第一张5G电话卡已发出,潘石屹成中国电信0001号尝鲜者
  8. 对账不平问题专题讲解内容
  9. 【基础教程】基于matlab图像质量评价综述【含Matlab源码 075期】
  10. (二)zookeeper安装
  11. 自抗扰控制中的扩张状态观测器收敛性分析3
  12. 用计算机和电视机组成家庭影院,用电脑组建家庭影院:  最方便最实惠的玩法...
  13. CTeX下载安装步骤
  14. MT7621_移植篇(3) uboot编译+配置项分析
  15. STM32学习笔记---OLED页寻址方式
  16. java排序接口ComparableT 的实现与使用
  17. MinIO客户端mc基础命令学习
  18. 整理:学术论文发表过程中的审稿人意见答复技巧
  19. 计算机产业能否迅速发展,工业计算机得到了迅速的发展和全面的普及
  20. 2023安徽农业大学计算机考研信息汇总

热门文章

  1. 「 C++ 函数 」“WSAStartup()使用”讲解
  2. java多张图片上传,前后台实现代码
  3. 计算机数据表格展示,利用工具,一分钟完成数据可视化,快速输出美观的数据图表...
  4. 如何解决高度塌陷【超全面】
  5. secure CRT设置自动保存日志
  6. 搜索引擎是如何工作的?
  7. WebView(三)—— WebView使用漏洞
  8. mac opt_获取Mac的Windows的其他隐藏(cmd + opt + H)键盘快捷键
  9. 1v1对战答题小程序
  10. 基于平移布林通道的系统