docker网络

森森的森森 森森的森森     2022-12-16     658

关键词:

Docker网络

理解Docker0

三个网络:

问题: docker是如何处理容器网络访问的?


启动一个tomcat容器

docker run -d -P --name tomcat01 tomcat

查看容器的内部网络地址ip addr,发现容 器启动的时候会得到一个 eth0@if114 ip地址, docker分配的!

docker exec -it tomcat01 ip addr


思考:liunx能不能ping通容器内部?

可见linux可以Ping通容器内部

原理:
1、我们每启动一个docker容器, docker就会给docker容器分配一个ip ,我们只要安装了docker ,就会有一个网卡docker0。
桥接模式,使用的技术是evth-pair技术!
再次测试Linux的 ip addr

2.再启动一个容器测试,发现又多了一对网卡

我们发现这个容器带来网卡,都是一对对的
evth-pair就是一对的虚拟设备接口,他们都是成对出现的,一段连着协议,一段彼此相连。正因为有这个特性,evth-pair充当一个桥梁,连接各种虛拟网络设备的
OpenStac,Docker容器之间的连接,OVS的连接,都是使用evth-pair 技术

3.我们来测试下tomcat01和tomcat02是否可以ping通


结论:容器和容器之间也是可以相互ping通的
网络模型图:

结论: tomcat01 和tomcat02公用的一个路由器, docker0。
所有的容器不指定网络的情况下,都是docker0路由的, docker会给我们的容器分配一个默认的可用IP

Docker使用的是Linux的桥接,宿主机中是一一个Dokcer容器的网桥docker0。
只要容器删除,对应网桥一对就没了!

–link

思考:我们是否可以使用容器名来进行访问?

可见,直接使用容器名,容器间是不能ping通的

解决:通过–link可以解决网络连通问题

docker run -d -P --name tomcat03 --link tomcat02 tomcat


存在问题:反向不能Ping通

查看docekr网络:

进入bridge内部:

docker network inspect b099380675b1


查看tomcat03 的hosts配置,

docker exec -it tomcat03 cat /etc/hosts


本质探究: --link就是我们在hosts配置中增加了一个172.18.0.3 tomcat02
我们现在玩Docker已经不建议使用-link 了!|

自定义网络!不适用docker0 !
docker0问题:他不支持容器名连接访问!

自定义网络

查看所有网络

docker network ls


网络模式
bridge :桥接docker (默认,自己创建也使用bridge模式)
none:不配置网络
host :和宿主机共享网络
container :容器网络连通! ( 用的少!局限很大)

测试

先将容器全部清除

我们直接启动的命令 - -net bridge(默认), 而这个就是我们的docker0
以下两条命令相等:

docker run -d -P --name tomcat01 tomcat
docker run -d -P --name tomcat01 --net bridge tomcat

docker0特点:默认, 域名不能访问,–1ink可 以打通连接!

我们可以自定义一个网络:

查看命令:


自定义一个网络:
–driver bridge
–subnet 192.168. 0.0/16
–gateway 192.168.0.1

docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet


查看网络信息:

docker network inspect mynet


现在我们的网络已经创建好了,
使用我们自己创建的网络来启动容器:

docker run -d -P --name tomcat-net-01 --net mynet tomcat

docker run -d -P --name tomcat-net-02 --net mynet tomcat

再次查看网络信息

使用我们自定义的网络创建的容器之间可以通过容器名字相互ping通

docker exec -it tomcat-net-01 ping tomcat-net-02

我们自定义的网络docker都已经帮我们维护好了对应的关系,推荐我们平时这样使用网络!
好处:
redis -不同的集群使用不同的网络,保证集群是安全和健康的
mysql -不同的集群使用不同的网络,保证集群是安全和健康的

网络连通

再创建两个默认网络下的容器 tomcat01和tomcat02

问题:默认docker0网络下的容器与我们自己创建的网络下的容器之间能否ping通?

可见不同网络下的容器之间是不能ping通的

我们可以将容器与网络之间进行连通
命令:

docker network connect


测试打通tomcat01 一mynet

docker network connect mynet tomcat01


可见连通之后就是将tomcat01 放到了mynet 网络下,然后就可以ping通了

一个容器两个ip地址!
类似于阿里云服务:中的公网ip和私网ip
结论:假设要跨网络操作别人,就需要使用docker network connect连通!。。。。|

云原生docker09-docker网络详解(代码片段)

【云原生|Docker】09-Docker网络详解文章目录【云原生|Docker】09-Docker网络详解前言网络详解bridge网络基于bridge网络的容器访问外部网络外部网络访问基于bridge网络的容器host网络none网络container网络自定义网络自定义bridge网络容器的... 查看详情

docker网络详解(代码片段)

Docker网络Docker网络架构libnetwork中的5种内置驱动Docker原生网络bridge模式host模式none模式Docker自定义网络创建自定义网桥bridge如何让不同网段的容器可以相互通信Docker基础知识可点击查看之前文章Docker网络架构Docker有自己的网络库&#... 查看详情

docker下网络的认识与实验(代码片段)

Docker下网络的认识与实验一、简述Docker的网络二、docker四大网络类型+自定义网络三、docker网络模式详细说明1、container模式2、none模式3、Host模式4、bridge模式5、自定义网络a、Docker自定义网络创建步骤一、简述Docker的网络Docker... 查看详情

docker网络(代码片段)

文章目录一、Docker网络简介(1)查看Docker网络二、Docker的bridge网络(1)创建使用bridge网络的容器(2)修改容器的默认网段三、none网络四、host网络五、自定义网络(1)自定义bridge网络(2)... 查看详情

docker网络配置

Docker网络配置Docker网络docker网络从覆盖范围可分文单个host上的容器网络和跨多个host的网络。docker安装时会自动在host创建三个网络[root@localhost~]#dockernetworklsNETWORKID     NAME    DRIVER  & 查看详情

容器化工具--------docker的网络操作(代码片段)

文章目录Docker网络操作Docker网络实现的原理Docker的网络模式host网络模式container模式none模式Bridge模式自定义网络Docker网络操作Docker网络实现的原理1.Docker使用Linux桥接,在宿主机虚拟一个Docker容器网桥(docker0),Docker启动一... 查看详情

容器化工具--------docker的网络操作(代码片段)

文章目录Docker网络操作Docker网络实现的原理Docker的网络模式host网络模式container模式none模式Bridge模式自定义网络Docker网络操作Docker网络实现的原理1.Docker使用Linux桥接,在宿主机虚拟一个Docker容器网桥(docker0),Docker启动一... 查看详情

docker容器网络

Docker容器网络1、Docker容器网络Docker在安装后自动提供3种网络,可以使用``dockernetworkls`命令查看[root@localhost~]#dockernetworklsNETWORKIDNAMEDRIVERSCOPE76170d3f953 查看详情

docker网络模式

默认网络当你安装Docker时,它会自动创建三个网络。你可以使用以下dockernetworkls命令列出这些网络   Docker内置这三个网络,运行容器时,你可以使用该--network标志来指定容器应连接到哪些网络。 该bridge网络代表doc... 查看详情

docker网络(代码片段)

...示本机回环地址eth0:表示阿里云内网(私网)地址docker0:表示docker的网络地址(Docker的网卡),只要安装了Docker就会有的。理解Docker0Docker0就是docker的网卡,只要安装了Docker就会自带Docker0。Docker如何处理容... 查看详情

docker学习重点~docker网络

一、Docker网络--理解Docker0准备工作:清空所有环境将docker的所有镜像、容器先删除,干干净净!1、查看本地网络信息ipaddr●可见有三个网卡信息:lo:本地(回环)地址;ens:虚拟机或阿里云服务器(内网)地址;docker0:docker网络地... 查看详情

docker网络与容器互联(代码片段)

@[TOC]#Docker网络与容器互联资源推荐Docker官网配置网络:https://docs.docker.com/network/Docker网络详解:https://blog.csdn.net/meltsnow/article/details/94490994Docker四种网络模式:https://www.jianshu.com/p/22a7032bb7bd使用网络网络驱动名称官方文档官方教程br... 查看详情

docker网络与容器互联(代码片段)

@[TOC]#Docker网络与容器互联资源推荐Docker官网配置网络:https://docs.docker.com/network/Docker网络详解:https://blog.csdn.net/meltsnow/article/details/94490994Docker四种网络模式:https://www.jianshu.com/p/22a7032bb7bd使用网络网络驱动名称官方文档官方教程br... 查看详情

docker关于docker网络隔离与通信详解

一、Docker的网络概念docker受一个github上的issue启发,引入了容器网络模型(containernetworkmodel,CNM),容器网络模型主要包含了3个概念network:网络,可以理解为一个Driver,是一个第三方网络栈,包含多种网络模式:单主机网络模... 查看详情

docker:网络模式详解

Docker作为目前最火的轻量级容器技术,牛逼的功能,如Docker的镜像管理,不足的地方网络方面。Docker自身的4种网络工作方式,和一些自定义网络模式安装Docker时,它会自动创建三个网络,bridge(创建容器默认连接到此网络)、no... 查看详情

强力的应用容器引擎——docker网络部分详解(代码片段)

Docker网络部分详解一、docker网络概述1.1docker网络实现的原理1.2docker的网络模式二、docker网络模式详解2.1host模式2.2container模式2.3none模式2.4bridge模式2.5自定义网络模式自定义网络模式创建步骤一、docker网络概述1.1docker网络实现的原... 查看详情

docker——网络配置(代码片段)

目录本次目标:一、Docker网络配置1.bridge模式(默认模式)2.host模式二、bridge模式三、host模式 网络模式与数据卷容器挂载的操作四、如何创建自定义网络 本次目标:Docker网络配置Docker部署SpringCloud项目一、Docker网络配置Doc... 查看详情

centos7下安装docker(12docker网络)

 docker网络荣覆盖范围可分为:单个host上的容器网络和跨多个host的网络docker安装时会自动在host上创建三个网络,我们可以使用dockernetworkls查看到1.none网络在这个网络下只有容器的lo网卡,在创建容器时可以使用--network=none指... 查看详情