Docker网络中篇-docker网络的四种类型

通过上一篇学习,我们对docker网络有了初步的了解。本篇,咱们就来实战docker网络。

docker网络实战

实战docker网络,我们将从以下几个案例来讲解

1:birdge是什么?

2:host

3:none

4:container

实战网络类型如下:

ee1065d72390fb4e2ce1d6334e1dafcf.png

在docker中,网络的配置是以json格式存在的,下面我们就来看看每种类型网络配置信息

我们先来看看bridge类型的网络

使用命令:docker network inspect bridge

33a01fe3aaa610ab58c7389ac4697943.png

查看host类型的网络

使用到命令:docker network inspect host

d37937003b6fcb156fb7e67bfb8eddfc.png

none类型网络

使用到的命令:docker network inspect none

acd4d2cfe1174af8219f8683e6f37d1e.png

自定义网络类型

docker network inspect bb_network

说明:bb_network是自定义网络名称

1eb55e672217e104ca053dd6f319ee46.png

bridge是什么

docker服务默认会创建一个docker0网桥,该桥接网络的名称是docker0,它是内核层连通了其他物理或虚拟网卡,这就是将所有容器和本地主机都放到同一个物理的网络中。docker默认指定了docker0接口的IP地址和子网掩码,让主机和容器之间可以通过网桥相互通讯

78f8e6e705e4b8abdbd245d197f19a01.png

网络图

e0d42e2525c2fc19916a09c10ce294e3.png

理解两两匹配,一一匹配:

c043cd5d6bbb7c634cd3001e243b222c.png

926ebbd25efadc246304d3b9e80d2bb9.png

启动后,查看宿主机ifconfig

043c1560c3deda48a6817416be4aca1d.png

然后分别进入对应的容器中查看ifconfig

先来看看tomcat81:

a42eaddde67271280f493f62a4b1619a.png

 

我们可以看到 veth23和etho22一一对应的。成对出现的。

ca9d056c8d782e983680e8e9deff8c71.png

 

c9a56d9f5989418f99306a60906acb78.png

host说明

host是什么?

直接使用宿主机的ip地址与外界进行通信,不再需要额外进行NAT转换。

1760c289f35d4612db55f8d1a2c1d2d6.png

 

警告

如果使用以下命令会出现警告:

docker run -d -p 80803:8080 --netword hot --name tomcat83 billygoo/tomcat8-jdk8

916ca181aa728afcc5145390a37230d1.png

 

正确写法:

6e53e8664ca3310fd14eb382c5d48c7b.png

把端口去掉。

141717499f7f73ed291fffdbf315541d.png

再次查看宿主机的ip信息。发现没有新增加网络配置。说明在host模式下,容器将不会获取一个独立的network namespace。和宿主机共用一个。

不信?查看83的网络配置信息:

4ca40edabcff1ac10200da05ac8806cd.png

 

怎么访问83呢?

0dc6bc440280abdcedf6864f316af501.png

none说明

938581fc0dd7ce94db04c2beb9f080e6.png

 48f5d3ab18a4bcc1f242bc5002c1736d.png

05a891607da492e20194fd3e0119dc8e.png

 container网络模式

58f96cfefe89bf8340a02e90cfa2f11a.png

 

930b2a7aaac64f1f318a14ab65c966f7.pngb9ed54f70741e5fdf890e45008ddeb87.png

4b0102986c7451fcbfc84549027d80de.png

e321eb05e8752da5837840a1172e3346.pnga1081ad29164848c3821ee73cafc161f.pngde2fc7d51de58cb8afceaec2510f8786.png

 

 

 

下一篇预告:在实际生产中,我们一般都是自定义网络的。所以,在下一篇中,咱们将实战自定义网络

 

本系列教程直通车

直通车,本系列教程已发布文章,快速到达,《Docker学习系列》教程已经发布的内容如下:

【图文教程】Windows11下安装Docker Desktop

【填坑】在windows系统下安装Docker Desktop后迁移镜像位置

【Docker学习系列】Docker学习1-docker安装

【Docker学习系列】Docker学习2-docker设置镜像加速器

【Docker学习系列】Docker学习3-docker的run命令干了什么?docker为什么比虚拟机快?

【Docker学习系列】Docker学习2-常用命令之启动命令和镜像命令

【Docker学习系列】Docker学习系列3:常用命令之容器命令

【Docker学习系列】Docker学习4-常用命令之重要的容器命令

【Docker教程系列】Docker学习5-Docker镜像理解

【Docker教程系列】Docker学习6-Docker镜像commit操作案例

【Docker学习教程系列】7-如何将本地的Docker镜像发布到阿里云

【Docker学习教程系列】8-如何将本地的Docker镜像发布到公司镜像服务器上?

「Docker学习系列教程」9-Docker容器数据卷介绍

「Docker学习系列教程」10-Docker容器数据卷案例

Docker学习11-Docker常规方式安装软件

「Docker学习系列教程」基础篇小总结及高级篇预告

docker高级篇1-dockeran安装mysql主从复制

docker高级篇2-分布式存储之三种算法

docker高级篇第二章-分布式存储之实战案例:3主3从redis集群扩容配置

docker高级篇第二章-分布式存储之实战案例:主从容错切换迁移案例

Docker高级:Redis集群实战!4主4从缩容到3主3从,怎么处理?

Dockerfile介绍及常用保留指令

docker高级篇第三章-dockerfile案例之制作自己的centos镜像

docker的虚悬镜像是什么?

docker高级篇:实战-自己开发的微服务怎么在docker上面运行?

Docker网络中篇-docker网络的四种类型

 

【Docker学习教程系列汇总】笔记及遇到问题解决文章

 

凯哥自己开发的,领取外卖、打车、咖啡、买菜、各大电商的优惠券的公¥众¥号。如下图:

527c8a82983e56a30f4299fc76e1956a.png

大家好,我是凯哥Java(kaigejava),乐于分享,每日更新技术文章,欢迎大家关注“凯哥Java”,及时了解更多。让我们一起学Java。也欢迎大家有事没事就来和凯哥聊聊~~~

 

posted @ 2022-12-28 09:52  kaizi1992  阅读(35)  评论(0编辑  收藏  举报