关键词:
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指... 查看详情