13.docker 网络 docker NameSpace (networkNamespace)
一. 案例
1.创建一个 container
docker run -d --name test1 busybox /bin/sh -c "while true; do sleep 3600; done"
2.进入到 container 内
docker exec -it test1 /bin/sh
3.查看 当前网络 ip a
可以看出 其使用的 ip 地址为 127.0.0.1 和 172.17.0.2
4. 退出 到 虚拟机 使用 ip a
可以看出 其 ip 地址 与 test1 内的 ip 地址不同 所以 通过 network Namespace 实现了网络的隔离
5. 再次创建相同的容器
docker run -d --name test2 busybox /bin/sh -c "while true; do sleep 3600; done"
6.进入 查看新 容器的 IP
docker exec test2 ip a
可以看出 其使用的 ip 地址为 127.0.0.1 和 172.17.0.3
7. 进入 test2 容器 并 ping 通 test1 是可以 ping 通的
docker exec -it test1 /bin/sh
ping 172.17.0.2
二. network Namespace 操作
1. 查看所有 network Namespace
sudo ip netns list
2. 删除 network Namespace
sudo ip netns delete [ list 出来的项 ]
3. 添加 network Namespace
sudo ip netns add [eg:test1]
4.查看创建的 容器 test1 的 ip
sudo ip netns exec test1 ip a 在 test1 容器内 执行 ip a 命令
sudo ip netns exec test1 ip link 在 test1 容器内 执行 ip link 命令
sudo ip netns exec test1 ip link set dev lo up 让 test1 容器内 的 lo 回管口 up 起来
三 连接两个容器

1. 添加一对link (即 图中 那根管道)
sudo ip link add veth-test1 type veth peer name veth-test2
使用 ip a 查看创建的 link
会出现 veth-test2@veth-test1 和 veth-test1@veth-test2 这一对link
2. 将 veth-test1 添加到 test1 容器中 并且 将 veth-test2 添加到 test2 容器中
sudo ip link set veth-test1 netns test1
sudo ip netns exec test1 ip link 查看是否包含 veth-test1
ip a 查看包含的 veth 是否还包含 veth-test1
sudo ip link set veth-test2 netns test2
sudo ip netns exec test2 ip link 查看是否包含 veth-test2
ip a 查看包含的 veth 是否还包含 veth-test2
3. 分配 ip 地址
分配 ip 地址 test1
sudo ip netns exec test1 ip addr add 192.168.1.13/24 dev veth-test1
分配 ip 地址 test2
sudo ip netns exec test2 ip addr add 192.168.1.14/24 dev veth-test2
使用 ip link 查看是否分配 ip 地址 发现 网络 还未开启
sudo ip netns exec test1 ip link
将 test1 和 test2 的网络 开启
sudo ip netns exec test1 ip link set dev veth-test1 up
sudo ip netns exec test2 ip link set dev veth-test2 up
使用 ip a 查看是否 分配ip 地址
sudo ip netns exec test1 ip a
sudo ip netns exec test2 ip a
使用 ping 互通 test1 test2
sudo ip netns exec test1 ping 192.168.1.14
sudo ip netns exec test2 ping 192.168.1.13
13.docker 网络 docker NameSpace (networkNamespace)的更多相关文章
- 14. docker 网络 docker bridge0 详解
1.创建一个 container docker run -d --name test1 busybox /bin/sh -c "while true; do sleep 3600; done ...
- 15 docker 网络 docker 容器之间的关系 docker link
1.案例:使用 link 关联后台与数据库 创建 test1 容器 docker run -d --name test1 busybox /bin/sh -c "while true; do ...
- 12. docker 网络 docker network (docker 网络)
1. 环境准备 编写 Vagrantfile 为 # -*- mode: ruby -*- # vi: set ft=ruby : Vagrant.require_version "> ...
- 理解Docker :Docker 网络
本系列文章将介绍 Docker的相关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 ...
- (转)Docker 网络
转:https://www.cnblogs.com/allcloud/p/7150564.html 本系列文章将介绍 Docker的相关知识: (1)Docker 安装及基本用法 (2)Docker ...
- Docker 网络原理
引言 学习docker网络,可以带着下面两个问题来探讨 容器之间可以相互访问的原理 容器暴露端口后,通过宿主机访问到容器内应用,并且对于访问端而言不用感知容器存在的原理 Docker 本身的技术依赖L ...
- 理解Docker(5):Docker 网络
本系列文章将介绍 Docker的相关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 ...
- docker网络
docker网络 Docker 允许通过外部访问容器或容器互联的方式来提供网络服务. 端口映射允许外部访问容器 --link 容器互联 容器桥接网络 .通过--link容器通信,给test2添加一 ...
- 16.2,docker网络
Docker 允许通过外部访问容器或容器互联的方式来提供网络服务. 端口映射允许外部访问容器 --link 容器互联 容器桥接网络 .通过--link容器通信,给test2添加一个hosts解析记 ...
随机推荐
- Mac使用安卓模拟器-网易MuMu
先看下效果图 近期,因为小编把安卓手机倒手了,但现在还想看看一些安卓应用.所以就搜罗了很多市场上的模拟器. 最终选定了网易的MuMu,总体感觉网易也是花了很大的心思,整体效果超赞. 下载地址 网易Mu ...
- linux----查看系统版本命令
uname -a 可显示电脑以及操作系统的相关信息 cat /proc/version 说明正在运行的内核版本 cat /etc/issue 显示的是发行版本信息
- 基础语法-判断结构if语句
基础语法-判断结构if语句 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.单分支语句 /** * 判断结构if单分支语句 * @author 尹正杰 * */ public c ...
- Egret Engine 2D - 遮罩
矩形遮罩 shp.mask = new egret.Rectangle(20,20,30,50); 注意如果rec发生变化,需要重要将rec赋值给shp.mask 删除遮罩的方法 sprite ...
- 洛谷 P2458 [SDOI2006]保安站岗
题目传送门 解题思路: 树形DP 可知一个点被控制有且仅有一下三种情况: 1.被父亲节点上的保安控制 2.被儿子节点上的保安控制 3.被当前节点上的保安控制 我们设dp[0/1/2][u]表示u节点所 ...
- 【LeetCode】N皇后I
[问题]n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击. 给定一个整数 n,返回所有不同的 n 皇后问题的解决方案.每一种解法包含一个明确的 n 皇后问 ...
- 使用Redux管理React数据流要点浅析
在图中,使用Redux管理React数据流的过程如图所示,Store作为唯一的state树,管理所有组件的state.组件所有的行为通过Actions来触发,然后Action更新Store中的stat ...
- struts2模型驱动传值问题
控制台错误提示: 2020-01-08 18:34:40,292 [http-nio-8080-exec-3] [org.apache.struts2.dispatcher.Dispatcher]-[ ...
- Spring注解——@Transactional
@Transactional 用于service实现类,声明这个service所有方法需要事务管理.每一个业务方法开始时都会打开一个事务.(未完待续)
- JavaBean和json数据之间的转换(二)含有date类型的JavaBean
1.前言 上次讲了简单的JavaBean和json格式之间的转换,代码很简单,但是实际过程中,往往用到的JavaBean都是比较复杂的,其他的字段还好,如果JavaBean中包含了date类型的字段, ...