1.host网络

连接到 host 网络的容器共享 Docker host 的网络栈,容器的网络配置与 host 完全一样。可以通过--network=host指定使用 host 网络。docker run -it --network=host busybox

直接使用 Docker host 的网络最大的好处就是性能,如果容器对网络传输效率有较高要求,则可以选择 host 网络。
当然不便之处就是牺牲一些灵活性,比如要考虑端口冲突问题,Docker host 上已经使用的端口就不能再用了。 2.bridge网络 bridge 是一个很特殊的网络,Docker 安装时会创建一个 命名为 docker0 的 linux bridge。如果不指定 --network,创建的容器默认都会挂到 docker0 上
在host上面
[root@docker226 yum.repos.d]# ip a

3: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
link/ether 02:42:ed:c8:be:9d brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 scope global docker0

5: vethb5f4665@if4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP
link/ether 9e:78:8e:6c:a8:be brd ff:ff:ff:ff:ff:ff link-netnsid 0

[root@docker226 yum.repos.d]# brctl show
bridge name bridge id STP enabled interfaces
docker0 8000.0242edc8be9d no vethb5f4665     (一个新的网络接口 vethcd8f150 被挂到了 docker0 上,vethcd8f150 就是新创建容器的虚拟网卡。)

在docker里面

[root@docker226 yum.repos.d]# docker   exec -it   0d6b3d648b98 /bin/bash

root@0d6b3d648b98:/usr/local/apache2#ip a

4: eth0@if5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.2/16 scope global eth0
valid_lft forever preferred_lft forever

Docker 每创建一个容器就会创建一组互联的网络接口。这组接口就像管道的两端(就是说,从一端发送的数据会在另一端接收到)。

这组接口其中一端作为容器里的 eth0 接口,而领一端统一命名为类似 vethxxxx 这种名字,作为宿主机的一个端口。

可以把 veth 接口认为是虚拟网线的一端。这个虚拟网线一端插在名为 docker0 的网桥上,另一端插到容器里。

可以把它们想象成由一根虚拟网线连接起来的一对网卡,网卡的一头(eth0)在容器中,另一头(vethcd8f150)挂在网桥 docker0 上,其效果就是将 eth0@if39 也挂在了 docker0 上。

3.用户定义网络

Docker 本身提供两种网络驱动:bridge 和 overlay。bridge 只能用于单机网络模式,overlay 用于创建跨主机的网络

docker network create -d bridge my_bridge

[root@docker226 yum.repos.d]# brctl show
bridge name bridge id STP enabled interfaces
br-8c4ec67f261a 8000.0242de446a3a no
docker0 8000.0242edc8be9d no vethb4e1e38

4.自定义网络ip段

如果要自定义网络 IP 段,只需在创建网段时指定--subnet--gateway参数:

docker network create -d bridge --subnet 192.168.31.0/24 --gateway 192.168.31.1 my_bridge2

容器要使用新的网络,需要在启动时通过--network指定:
docker run -it --network=my_bridge2 --name busybox1 busybox

5.给容器指定固定ip
我们在启动容器的时候,可以通过参数 --ip 来指定特定的 IP,只有使用--subnet创建的 User-defined 网络才能指定静态 IP。
docker run -it --network=my_bridge2 --ip 192.168.31.25 --name busybox2 busybox
/ # ip a 44: eth0@if45: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue
link/ether 02:42:c0:a8:1f:19 brd ff:ff:ff:ff:ff:ff
inet 192.168.31.25/24 scope global eth0
 6.不同网桥下容器互通
[root@docker194 ~]# docker network connect   my_bridge168_31  docker0httpd17_2 (在创建网络和容器的时候要标明,不易混淆)

Docker 网络(十一)-运维点滴记录-51CTO博客
http://blog.51cto.com/wzlinux/2047243

k8s网络架构

4.kubernetes官方架构图

docker - kubernetes 网络(转)+ 架构图的更多相关文章

  1. 【Network】OVS、VXLAN/GRE、OVN等 实现 Docker/Kubernetes 网络的多租户隔离

    多租户隔离 DragonFlow与OVN | SDNLAB | 专注网络创新技术 Neutron社区每周记(6.25~7.6)| OVS将加入Linux基金会?OVN或抛弃ovsdb? | Unite ...

  2. Kubernetes基础服务架构图

    最近看了一些kubernetes的相关资料, 简单的画了一个原理图 欢迎大家批阅

  3. 【Linux】【Services】【SaaS】Docker+kubernetes(1. 基础概念与架构图)

    1.简介 1.1.  背景:公司正在进行敏捷开发环境的搭建,以取代传统的架构,好处大大的,我就不赘述了.公司原来负责这个项目的同事要转组,我只好交给另外同事继续,但是为了防止同样的事情,我也需要深入了 ...

  4. Kubernetes 架构图

    Kubernetes 架构图: Pod K8S中最基础的调度单位是Pod,它有网络,有存储.Pod里面运行着一个或者若干个docker容器.同一个Pod里的容器共享同一个网络命名空间,可以使用loca ...

  5. Docker Kubernetes Volume 网络数据卷

    Docker Kubernetes Volume 网络数据卷 由于支持网络数据卷众多 今天只拿nfs作为案例. 支持网络数据卷 nfs iscsi glusterfs awsElasticBlockS ...

  6. Docker Kubernetes Service 网络服务代理模式详解

    Docker Kubernetes  Service 网络服务代理模式详解 Service service是实现kubernetes网络通信的一个服务 主要功能:负载均衡.网络规则分布到具体pod 注 ...

  7. 深入解读docker网络与kubernetes网络

    前言:你是否学习使用k8s很久很久了可是对于网络这块仍旧似懂非懂呢? 您是否对网上一堆帖子有如下的抱怨: 打开多个博客,然后发现有区别么? 明显是直译过来的,越看越迷糊 “因为xxx,所以yyy”,. ...

  8. Kubernetes & Docker 容器网络终极之战(十四)

    目录 一.单主机 Docker 网络通信 1.1.host 模式 1.2 Bridge 模式 1.3 Container 模式 1.4.None 模式 二.跨主机 Docker 网络通信分类 2.1 ...

  9. Kubernetes生态架构图

    图片来源于:https://gitbook.curiouser.top/ 一.kubernetes 集群架构图 二.Openshift or Kubernetes 集群架构图 三.常见的 CI/CD ...

随机推荐

  1. vue2.0 element-ui中input的@keyup.native.enter='onQuery'回车查询刷新整个表单的解决办法

    项目中用的element-ui是v1.4.3版本 实现的功能是在input中输入查询的名称,按下键盘回车键,可以查询表格中数据 问题是,我输入名称,按下回车,会整个表单刷新,搜索条件也被清空:代码如下 ...

  2. RabbitMQ,Windows环境下安装搭建

    切入正题:RabbitMQ的Windows环境下安装搭建 一.首先安装otp_win64_20.1.exe,,, 二.然后安装,rabbitmq-server-3.6.12.exe, 安装完成后,在服 ...

  3. Dlink DIR-823G 漏洞挖掘过程

    前言 本文由 本人 首发于 先知安全技术社区: https://xz.aliyun.com/u/5274 初步分析 首先下载固件 https://gitee.com/hac425/blog_data/ ...

  4. Android网络请求库RetrofitUtils

    RetrofitUtils GitHub地址,帮忙给个Star 项目介绍 Retrofit+Okhttp辅助类的简单封装,vesion 1.0.X 实现了Get,Post-Form.Post-Json ...

  5. oracle sql 命令类别

    1.数据定义语言 DDL 有 create alter drop2.数据操纵语言 DML insert select delete update3.事务控制语言 TCL commit savepoin ...

  6. centos7安装magento随记 这就是个坑,果断放弃

    在centos7通过yum安装PHP7,首先在终端运行:rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm提示错误:er ...

  7. Python redis交互

    1.首先安装模块 pip3 install redis 2.代码模板如下: from redis import StrictRedis if __name__ == '__main__': # 设置连 ...

  8. ES6-fetch

    fetch 事实标准,并不存在与ES6规范中,基于Promise实现. 目前项目中对Promise的兼容性尚存在问题,如果在项目中应用fetch,需要引入es6-promise和fetch. fis3 ...

  9. TestNG 判断文件下载成功

    用WatchService写一个方法放在onTestStart()方法里监听文件夹的变化. 但是判断下载成功还需要写一个方法, 用来判断什么时候文件从.xlsx.rcdownload改成.xlsx才行 ...

  10. 线性代数的视角理解LSR(least square regression)的参数评估算法本质

    https://medium.com/@andrew.chamberlain/the-linear-algebra-view-of-least-squares-regression-f67044b7f ...