为了账号安全,请及时绑定邮箱和手机立即绑定

Docker网络上篇-网络介绍

标签:
Java

通过前面的学习,我们已经可以把自己写的微服务项目通过dockerfile文件方式部署到docker上面了。那么微服务之间通信,怎么通信的?是在同一个网络还是在不同的网络环境下?docker中怎么配置网络环境呢?本文咱们就一起学学docker网络。

docker网络是什么?

在不启动docker之前,我们来看看宿主机的网络情况。使用命令:ifconfig

https://img4.sycdn.imooc.com/63aa58f50001fcec05530296.jpg

说明:

ens33:是宿主机的ip.比如我们想通过我们物理机Windows连接到虚拟机宿主机的话,就是用的是这个ip.

lo:local,本地地址。

virbro:centos在虚拟化的时候,会安装一个以网桥连接的私网地址。默认就是192.168.122.1。是做虚拟机网桥使用的。

启动docker后,在查看宿主机网络情况.命令依然是ifconfig

https://img1.sycdn.imooc.com/63aa58f900015c4e05530340.jpg

我们发现会多出一个 docker0的网卡。这个就是本章节需要讲解的。

Docker网络常用的命令:

使用命令查看:

docker network ls

https://img3.sycdn.imooc.com/63aa58ff00017d4a05530137.jpg

bridge、host、none是默认创建的3大网络模式。

我们先来help下,看看docker network都有哪些命令

https://img1.sycdn.imooc.com/63aa59020001789505530277.jpg


命令:

https://img4.sycdn.imooc.com/63aa590700011db505530152.jpg

https://img1.sycdn.imooc.com/63aa590e0001988905530153.jpg

查看命令:

https://img4.sycdn.imooc.com/63aa5912000199f205530236.jpg

docker网络能干嘛?

https://img4.sycdn.imooc.com/63aa59160001857405530060.jpg

网络模式

docker网络有以下几种模式:

https://img1.sycdn.imooc.com/63aa5919000188dd05530272.jpg

其中比较常用的是bridge和host模式。

https://img3.sycdn.imooc.com/63aa591e000107d905530135.jpg

docker 网络底层ip和容器映射关系

先启动两个ubuntu

https://img2.sycdn.imooc.com/63aa592000017c7a05530061.jpg

查看网络情况:

docker inspect u1

或者只查看倒数20行

docker inspect ul | tail -n 20

https://img4.sycdn.imooc.com/63aa59240001bbe305530174.jpg

我们再来看看u2的网络设置

https://img2.sycdn.imooc.com/63aa592700011c1d05530215.jpg

假设我们把uw rm -f

https://img1.sycdn.imooc.com/63aa592b0001fccd03990052.jpg

然后我们在启动一个u3

https://img2.sycdn.imooc.com/63aa592f0001f02605530035.jpg

再来看看U3的ip:

https://img4.sycdn.imooc.com/63aa59330001d12305530304.jpg

哇哦!ip是0.3。我们发现这个时候u3的ip竟然复用了u2的ip.这是多么可怕。

比如,在实际中,u2上面安装的是mysql.u2宕机后,创建了u3,向redis集群使用。但是,项目中写的ip还是172.17.0.3来连接数据库。那么u3启动后,是redis服务。程序连接MySQL也来找0.3。是不是很可怕。所以,在服务中,写死ip的需要注意。

所以,在实际中,我们在规划服务的时候,ip应该写死的。

那么怎么处理呢?我们会用到

docker network create 网络名称

https://img2.sycdn.imooc.com/63aa593700013b1f05530176.jpg

我们创建指定的网络名称。然后设置ip.其他同一类的都可以使用这个网络名称(网络范围内)。通过网络服务来连接。



点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
JAVA开发工程师
手记
粉丝
12
获赞与收藏
22

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消