centos7下安装docker(12.5容器在单个host上的网络总结)
单个host上的容器的网络:通过本章的学习,我们知道docker默认有三种网络,可以通过docker network ls查看;
none:封闭的网络,通过--network=none来指定;
host:将host主机上面的网络完全映射到容器中;
bridge:桥接网络,默认情况下容器使用的是bridge,并将容器网络桥接到docker0上;可以通过brctl show查看桥接情况
我们可以创建user-defined网络,user-defined也分为三种:bridge,overlay,macvlan,本节重点讨论的是bridge,其他两个主要用来实现跨主机的网络;
通过docker network create --driver bridge <网络名>来创建bridge网络,通过docker network inspect查看bridge的subnet以及gateway;
我们新建bridge网络的时候可以通过--subnet和--gateway来指定bridge的网段和网关;
运行容器的时候我们通过--network=<新建的网络名>指定容器使用的网段,通过--ip指定容器的ip;
通过docker network rm<网络ID>来删除不用的网络,前提是这个网络没有被使用。
我们还学习了容器与容器之间的通信:证明了在同一个网络下的容器之间可以互相通信;在不同网络的容器可以设置iptables来实现,也可以通过docker network connect <网络名> <容器名> 来给容器增加一个不同网段的新网卡来实现不同网段的容器之间的通信;
容器间的通信方式有三种:IP通信,DNS通信,joined方式通信
最后学习了容器如何与外部进行通信:通过NAT的方式来实现容器访问外网:容器发送请求先到桥接网卡(docker0),桥接网卡发现是访问外网的通过NAT进行网络地址转换,将容器的地址转换成host的地址,通过host的地址访问外部;
通过端口映射的方式实现了外部访问容器:首先启动容器的时候要通过-p设置容器映射的端口,每映射一个端口,host都会启动一个docker-proxy的进程;当外部有请求过来时,先访问host对应的端口,然后通过docker-proxy将请求转发到容器对应的端口,容器在将结果返回。
本节的命令总结:
brctl show:桥接情况
docker network ls:查看docker网络
docker network create --driver bridge --subnet --gateway docker1:创建一个docker1的bridge网络
--driver bridge:驱动类型为bridge ;--subnet指定网段;--gateway指定网关
docker run -d --network=none/host/docker1 --ip 192.168.2.2 busybox :运行一个容器指定他使用的网络和ip
--network=none/host/docker1 指定使用的网络 --ip指定容器的ip
docker network inspect <网络ID>查看bridge网络的信息
docker network connect <网络名> --ip <容器名> 给容器增加一块网卡
docker network rm <网络ID>删除网络
centos7下安装docker(12.5容器在单个host上的网络总结)的更多相关文章
- centos7下安装docker(19容器架构)
What,Why,How What:什么是容器? 说起容器大家想到的是什么? 集装箱(container),虚拟机,docker,k8s 1. 没毛病,因为容器与集装箱的英文都可以翻译成co ...
- centos7下安装docker(11容器操作总结)
这段时间主要是学习了对容器的操作,包括:容器的状态:start,stop,restart,rename,pause,unpause,rm,attach,exec,kill,logs:还学习了对容器的资 ...
- centos7下安装docker(10容器底层--cgroup和namespace)
cgroup和namespace是实现容器底层的重要技术 cgroup:实现资源限制 namespace:实现资源隔离 1.cgroup:control group Linux操作系统通过cgroup ...
- centos7下安装docker(9容器对资源的使用限制-内存)
一个docker Host上面会运行若干容器,每个容器都需要CPU,内存和IO资源.容器提供了控制分配多少CPU,内存给每个容器的机制,避免摸个容器因占用太多资源而影响其他 ...
- CentOS7下安装docker(Docker系列1)
CentOS7下安装docker 系统要求 为了安装docker,需要准备 64-bit的CentOS 7 删除非官方的Docker包 yum的仓库中有一个很旧的Docker包, 现在Docker官方 ...
- docker(一) Centos7下安装docker
docker(一) Centos7下安装dockerdocker(二) windows10下安装dockerdocker(三) 镜像和容器常用命令 docker(四) 使用Dockerfile构建镜像 ...
- centos7下安装docker与镜像加速
1.背景 centos7下安装docker 2.安装 第一步:检查是否为centos7版本 第二步:依赖环境安装 执行如下两个命令: yum -y install gcc yum -y install ...
- centos7下安装docker(15.1跨主机网络)
之前学习了单个host上的网络,我们知道单个host上的网络有:none,host,bridge和joined,他们解决了单个host上面的容器通信的问题:接下来我们讨论跨主机间容器通信的方案 跨主机 ...
- centos7下安装docker(15.5容器跨主机网络--flanneld)
flannel是由CoreOS研究的一种覆盖网络(overlay network)网络工具,目的是帮助每一个host主机有一个完整的子网: 功能是:让集群中不同节点的主机创建的容器都有一个唯一的虚拟I ...
随机推荐
- 初识Scala
scala 是 scalable Language 的简写,是一门多范式的编程语言. scala是一种纯面向对象的语言每个值都是对象, 同时支持大量的函数式特性. scala运行于Java虚拟机(JV ...
- [NOI 2017]整数
Description 题库链接 P 博士将他的计算任务抽象为对一个整数的操作. 具体来说,有一个整数 \(x\) ,一开始为 \(0\) . 接下来有 \(n\) 个操作,每个操作都是以下两种类型中 ...
- [51nod1514] 美妙的序列
Description 如果对于一个 \(1\sim n\) 的排列满足: 在 \(1\sim n-1\) 这些位置之后将序列断开,使得总可以从右边找一个数,使得该数不会比左边所有数都大,则称该序列是 ...
- CRC 校验原理及步骤
什么是 CRC 校验? CRC 即循环冗余校验码:是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定.循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计 ...
- 动态规划法(三)子集和问题(Subset sum problem)
继续讲故事~~ 上次讲到我们的主人公丁丁,用神奇的动态规划法解决了杂货店老板的两个找零钱问题,得到了老板的肯定.之后,他就决心去大城市闯荡了,看一看外面更大的世界. 这天,丁丁刚回到家,他 ...
- Maven之setting.xml配置文件详解
setting.xml配置文件 maven的配置文件settings.xml存在于两个地方: 1.安装的地方:${M2_HOME}/conf/settings.xml 2.用户的目录:${user.h ...
- elasticsearch6.7 05. Document APIs(7)Update By Query API
6.Update By Query API _update_by_query 接口可以在不改变 source 的情况下对 index 中的每个文档进行更新.这对于获取新属性或其他联机映射更改很有用.以 ...
- 【协议】5、gossip 协议
Gossip是一种去中心化.容错并保证最终一致性的协议. Background:分布式环境 Gossip是为了解决分布式遇到的问题而设计的.由于服务和数据分布在不同的机器上,节点之间的每次交互都伴随着 ...
- 【Java面试】1、基础知识篇
[Java面试]基础知识篇 Java基础知识总结,主要包括数据类型,string类,集合,线程,时间,正则,流,jdk5--8各个版本的新特性,等等.不足的地方,欢迎大家补充. 源码分享:https: ...
- loj#2002. 「SDOI2017」序列计数(dp 矩阵乘法)
题意 题目链接 Sol 质数的限制并没有什么卵用,直接容斥一下:答案 = 忽略质数总的方案 - 没有质数的方案 那么直接dp,设\(f[i][j]\)表示到第i个位置,当前和为j的方案数 \(f[i ...