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解析记 ...
随机推荐
- POJ 3368:Frequent values
Frequent values Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 14764 Accepted: 5361 ...
- Java算法练习——正则表达式匹配
题目链接 题目描述 给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 '.' 和 '*' 的正则表达式匹配. '.' 匹配任意单个字符 '*' 匹配零个或多个前面的那一个元素 所谓匹配,是要 ...
- [题解] LuoguP4381 [IOI2008]Island
LuoguP4381 [IOI2008]Island Description 一句话题意:给一个基环树森林,求每棵基环树的直径长度的和(基环树的直径定义与树类似,即基环树上一条最长的简单路径),节点总 ...
- maven学习(三)-使用maven来创建项目
转自https://www.cnblogs.com/xdp-gacl/p/4240930.html maven作为一个高度自动化构建工具,本身提供了构建项目的功能,下面就来体验一下使用maven构建项 ...
- tensorflow--conv函数
#第一种yolo3中程序 def convolutional(input_data, filters_shape, trainable, name, downsample=False, activat ...
- GPU 、APU、CUDA、TPU、FPGA介绍
购买显卡主要关注:显存.带宽和浮点运算数量 GPU :图形处理器(英语:Graphics Processing Unit,缩写:GPU),又称显示核心.视觉处理器.显示芯片,是一种专门在个人电脑. ...
- Linux(CENTOS7) NodeJs安装
1.下载NodeJs 官网下载地址:http://nodejs.cn/download/ 2.上传到linux系统 我这里上传到/disk/nodejs目录下面的,上传工具使用的xftp. 3 ...
- VS程序不显示控制台
之所以会有这样的想法是因为,有时候我会用到一些库,这些库在使用的时候会在控制台输出一些信息,虽然这是无可厚非的事情,但是,如果我写了一个界面,这个时候当然是希望要显示什么就显示在界面上,或者就不要显示 ...
- HTML5中的行级标签和块级标签
行级标签 1.行级标签又称为内联标签,行级标签不会单独占据一行,设置宽高无效. 2.行内内部可以容纳其他行内元素,但不可以容纳块元素.有span.strong.em.b.i.input.a.img.u ...
- getComputedStyle() 和 getPropertyValue()
// getComputedStyle() 方法用于获取指定元素的 CSS 样式. // 获取的样式是元素在浏览器中最终渲染效果的样式. // getPropertyValue() 方法返回指定的 C ...