docker学习-bridge网络

Docker提供几种原生网络,从覆盖范围可以分为单个host上的容器网络和跨多个host的网络。
Doker在安装的时候会自动在host上创建三个网络,使用如下命令查看

docker network ls

none 网络

故名思议,none 网络就是什么都没有的网络。挂在这个网络下的容器除了 lo,没有其他任何网卡。容器创建时,可以通过 --network=none 指定使用 none 网络。
该网络一般应用到一些对安全性要求高并且不需要联网的应用,比如某个容器的唯一用途是生成随机密码,就可以放到 none 网络中避免密码被窃取

host 网络

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

在容器中可以看到 host 的所有网卡,并且连 hostname 也是 host 的。host 网络的使用场景如下:

直接使用 Docker host 的网络最大的好处就是性能,如果容器对网络传输效率有较高要求,则可以选择 host 网络。当然不便之处就是牺牲一些灵活性,比如要考虑端口冲突问题,Docker host 上已经使用的端口就不能再用了。

Docker host 的另一个用途是让容器可以直接配置 host 网路。比如某些跨 host 的网络解决方案,其本身也是以容器方式运行的,这些方案需要对网络进行配置,比如管理 iptables。

brige网络操作

brige网络是应用最广泛的网络类型。
Docker 安装时会创建一个 命名为 docker0 的 linux bridge。如果不指定--network,创建的容器默认都会挂到 docker0 上。

brctl show

当前docker0上没有任何其他网络设备

创建一个名为net1的Bridge网络

docker network create net1


查看net网桥,subnet已经自动配置为

docker network inspect net1

创建一个名为net2的bridge网桥,指定subnet=172.10.10.0/24

docker network create --driver bridage --subnet 172.10.10.0/24 --gateway 172.10.10.1 net2

启动名为centos1的容器,并加入net1网络

docker run --name centos1 -dit --network=net1 centos


启动名为centos2的容器,并加入net2网络

启动名为centos3的容器,并加入net2网络,同时指定该容器IP=172.10.10.10
docker run --name centos3 -dit --network=net2 --ip 172.10.10.10 centos

分别查看3个centos容器的IP地址信息。其中cnetos2和centos3位于同一网段,centos1与前两者位于不同网段
docker inspect centos1

docker inspect centos2

docker inspect centos3

以下面这张图来理解bridge网络

容器主要是通过veth pair连接到 brigde网络,它是一对成对出现的特殊网络设备,简单可以理解为由一根虚拟网线连接起来的一堆网卡,网卡的一头(如[email protected])在容器中,另外一头(如veth28c57df)挂在网桥docker0上

原文地址:https://blog.51cto.com/11555417/2437888

时间: 2024-07-30 16:49:04

docker学习-bridge网络的相关文章

学容器必须懂 bridge 网络 - 每天5分钟玩转 Docker 容器技术(32)

上一节我们讨论了 none 和 host 类型的容器网络,本节学习应用最广泛也是默认的 bridge 网络. Docker 安装时会创建一个 命名为 docker0 的 linux bridge.如果不指定--network,创建的容器默认都会挂到 docker0 上. 当前 docker0 上没有任何其他网络设备,我们创建一个容器看看有什么变化. 一个新的网络接口 veth28c57df 被挂到了 docker0 上,veth28c57df就是新创建容器的虚拟网卡. 下面看一下容器的网络配置.

Docker 学习笔记【3】 Docker 仓库、数据卷、数据卷容器,网络基础实操。高级网络配置学习

Docker 学习笔记[4] 高级网络配置实操,实战案例实验 =========================================================================== Docker 学习笔记[2] Docker 仓库实操,创建私有仓库,实操数据卷.数据卷容器,记录开始 =========================================================================== 被格式化的脚本内容: #开头代表

Docker学习(六): 网络使用与配置

特别声明: 博文主要是学习过程中的知识整理,以便之后的查阅回顾.部分内容来源于网络(如有摘录未标注请指出).内容如有差错,也欢迎指正! =============系列文章============= 1. Docker学习(一): 基本概念 2. Docker学习(二): 镜像的使用与构建 3. Docker学习(三): Dockerfile指令介绍 4. Docker学习(四): 操作容器 5. Docker学习(五): 仓库与数据管理 6. Docker学习(六): 网络使用与配置 =====

Docker的bridge和macvlan两种网络模式

项目上部署的Docker集群创建的容器网络遇到问题,借机会学习了一下docker的网络模式,其他类型我们用的不多,这里只列举我们常用的bridge和macvlan两种,下面的描述和截图有一些是直接从网上下载的. Bridge模式  Bridge模式是Docker默认的网络模式,当Docker进程启动时,会在主机上创建一个名为docker0的虚拟网桥,用来连接宿主机和容器,此主机上的Docker容器都会连接到这个虚拟网桥上,虚拟网桥的工作方式和物理交换机类似,这样所有容器就通过交换机连在了一个二层

Docker 学习笔记【2】 Docker 基础操作实,Docker仓库、数据卷,网络基础学习

Docker 学习笔记[3] Docker 仓库实操,创建私有仓库,实操数据卷.数据卷容器,实操 网络基础  ---------高级网络配置和部分实战案例学习 ============================================================= Docker 学习笔记[1]Docker 相关概念,基本操作--------实操记录开始 ============================================================= 被

docker 学习笔记之docker连接网络的设置

1.如果docker主机不需要通过代理连接外网 则docker的相关命令(如docker search)或docker容器与网络相关的操作都可以正常进行,不需要特殊设置. 2.当docker主机 是通过代理才能连接外网时,采用服务方式启动守护进程 如果docker守护进程是通过服务的方式启动的(sudo start docker) 当我们执行如  docker search ubuntu 命令时,会报错 Error response from daemon: Get https://index.

docker学习3-虚拟网络模式

一.虚拟机网络模式 在理解docker网络隔离前,先看下之前虚拟机里对网络的处理,VirtualBox中有4中网络连接方式: NAT Bridged Adapter Internal Host-only Adapter VMWare中有三种,其实他跟VMWare 的网络连接方式都是一样概念,只是比VMWare多了Internal方式. 要让自己(或别人)理解深刻,方法就是做比较和打比方,比较之间的不同和相同,拿熟知的事物打比方.先来一张图,通过这张图就很容易看出这4种方式的区别: NAT:Net

Docker Network 配置,自定义bridge网络

                    Docker Network 配置,自定义bridge网络      1.停止服务     service docker stop   2.关掉docker0     ifconfig docker0 down   3.删除docker     brctl delbr docker0   4.增加网桥br500     yum install bridge-utils       2, 网络配置     [[email protected] network

Docker学习笔记之网络篇

一.网络 docker提供几种网络,它决定容器之间和外界和容器之间怎么样去相互通信.查看网络,我们可以执行: docker network ls null:是无网络,使用这种网络的容器会完全隔离. host:是主机网络,只用这种网络的容器会使用主机的网络,这种网络对外界是完全开放的,能够访问到主机,就能访问到容器. bridge:是桥接网络,除非创建容器的时候指定网络,不然容器就会默认的使用桥接网络.属于这个网络的容器之间可以相互通信,不过外界想要访问到这个网络的容器呢,需使用桥接网络,有点像主