深入解析docker三种网络模式
(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun)
1.docker默认的三种网络模式:
bridge:桥接模式
host:主机模式
none:无网络模式
查看网络模式: docker network ls
2.桥接模式
简介:桥接模式是docker 的默认网络设置,当Docker服务启动时,会在主机上创建一个名为docker0的虚拟网桥,并选择一个和宿主机不同的IP地址和子网分配给docker0网桥
如下图所示:eno16777728是宿主机的网卡,192.168.0.156是宿主机的ip地址,docker0就是docker服务的虚拟网桥。
桥接拓扑图:
网络模式选择桥接模式的容器,就会连接上docker0这个网桥,在通过nat的转换,通过宿主机的网卡,连接外网,就能达到上外网的目的。
如下图所示,我启动了两个容器,就会有两个容器网卡,以及一个docker0虚拟网卡,如果启动三个就会有三个容器网卡,这几个容器网卡都会桥接到docker0网卡,docker0网卡与物理机网卡连接使用的是nat技术
进入某一个容器查看路由情况:
在容器内安装工具:yum -y install net-tools
容器的ip地址是172.17.0.3,他的网关是172.17.0.1,他的数据是发往172.17.0.1这个网关,这个网关也是虚拟网桥的地址,如下图所示,docker0这个虚拟网桥的ip地址就是172.17.0.1。
在宿主机安装工具:yum install -y bridge-utils
然后使用brctl show命令查看桥接情况:
如下图所示就可以看到,docker0这个网桥桥接了30和17这两个容器的网卡.
需要注意的一点如下:
宿主机能访问docker容器是因为有docker0这个虚拟网卡,除宿主机外的机器想访问容器,只能够访问宿主机,这时候正常方式都是使用端口映射,也就是将容器的端口与宿主机的端口进行映射,供外面的机器访问
3.host模式
host 模式:该模式下容器是不会拥有自己的ip地址,而是使用宿主机的ip地址和端口。这种模式的好处就是网络性能比桥接模式的好。缺点就是会占用宿主机的端口,网络的隔离性不太好
以nginx容器为例:启动nginx容器命令并防火墙放开80端口:
docker run -d --net=host mycentos:nginx /usr/local/nginx/sbin/nginx -g “daemon off;”
–net=host是指定网络模式为主机模式,如果不填就是桥接模式
注意:主机模式启动的容器没有自己的IP地址
4.none模式
加上后面的参数就行了 --net=none
none模式没有IP地址,无法连接外网,等于就是断网的状态,作用就是用于测试,生产环境一般不会用到这种
到此这篇关于详解docker三种网络模式的文章就介绍到这了,更多相关docker网络模式内容请搜索程序员之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持程序员之家!
相关文章
Dockerfile中multi-stage(多阶段构建)详解
在2017年5月3日即将发行的 Docker 17.05.0-ce 中,Docker 官方提供了简便的多阶段构建 (multi-stage build) 方案,下面这篇文章主要给大家介绍了关于Dockerfile中multi-stage(多阶段构建)的相关资料,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。2018-03-03docker compose 一键部署分布式配置中心Apollo的过程详解
这篇文章主要介绍了docker compose 一键部署分布式配置中心Apollo,今天我们使用Docker来进行搭建,毕竟Docker对于开发者来说更友好一些,需要的朋友可以参考下2021-09-09Spring Boot应用通过Docker发布部署的流程分析
将Spring Boot项目部署到docker中有两种方法,手动部署和插件部署,本文通过实例代码介绍了idea创建spring boot项目的详细过程,感兴趣的朋友一起看看吧2021-09-09
最新评论