深入解析docker三种网络模式

 更新时间:2022年04月14日 14:34:29   作者:m0_54883970  
这篇文章主要介绍了docker三种网络模式,分别是bridge桥接模式,host主机模式,none无网络模式,每种模式给大家介绍的非常详细,需要的朋友可以参考下

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网络模式内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 两种方式创建docker镜像的启动容器时区别介绍(总结篇)

    两种方式创建docker镜像的启动容器时区别介绍(总结篇)

    这篇文章主要介绍了基于两种创建docker镜像的启动容器时区别总结,第一种凡是用docker commit生成的镜像启动的时候可以加载一个启动自己应用的脚本,第二种用Docfile文件生成的镜像时,来启动容器就不用再加这个脚本了,具体详情一起通过本文学习吧
    2016-10-10
  • docker和docker-compose一键安装教程(支持在线和离线)

    docker和docker-compose一键安装教程(支持在线和离线)

    这篇文章主要介绍了docker和docker-compose一键安装(支持在线和离线),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • docker如何创建nginx图片服务器

    docker如何创建nginx图片服务器

    这篇文章主要介绍了docker如何创建nginx图片服务器问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • Docker 容器生命周期 架构 以及和VM之间的差异详解

    Docker 容器生命周期 架构 以及和VM之间的差异详解

    这篇文章主要介绍了Docker 容器生命周期 架构 以及和VM之间的差异详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • Docker 教程之镜像列出详细介绍

    Docker 教程之镜像列出详细介绍

    这篇文章主要介绍了Docker 教程之镜像列出详细介绍的相关资料,需要的朋友可以参考下
    2016-12-12
  • docker部署mysql后无法连接的解决方式

    docker部署mysql后无法连接的解决方式

    最近在在docker中安装了mysql后,去连接的时候出现错误,下面这篇文章主要给大家介绍了关于docker部署mysql后无法连接的解决方式,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2022-08-08
  • Docker连接宿主Redis的方法步骤

    Docker连接宿主Redis的方法步骤

    本文主要介绍了Docker连接宿主Redis的方法步骤,可以轻松地使用Docker容器与宿主机上的Redis进行交互,实现高效的数据存储和共享,,具有一定的参考价值,感兴趣的可以了解一下
    2024-01-01
  • Docker安装Nginx并修改Nginx配置文件的方法详解

    Docker安装Nginx并修改Nginx配置文件的方法详解

    这篇文章主要给大家介绍了关于Docker安装Nginx并修改Nginx配置文件的相关资料,文中通过实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2023-02-02
  • Docker 部署 pSQL 服务器的详细教程

    Docker 部署 pSQL 服务器的详细教程

    本文详细介绍了如何使用Edu邮箱申请Azure订阅并开通免费VPS,以及在Ubuntu VPS上通过Docker部署pSQL服务器的方法,感兴趣的朋友跟随小编一起看看吧
    2025-02-02
  • docker搭建Jenkins以及基本使用图文教程

    docker搭建Jenkins以及基本使用图文教程

    Jenkins是一个广泛使用的开源持续集成工具,它能够自动化构建、测试和部署软件项目,这篇文章主要给大家介绍了关于docker搭建Jenkins以及基本使用的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2024-04-04

最新评论