关于docker那点事儿——docker网络模式

article/2025/5/19 8:49:57

docker网络模式

  • 前言
  • 一、容器网卡、网桥docker0、veth关系
  • 二、docker的4种网络模式
    • bridge模式
    • host模式
    • container模式
    • none模式

前言

可以说每一次技术的革新都离不开最底层、最复杂也是最核心的两个东西,那就是网络和存储。不管是虚拟化还是容器化都与这两点密不可分。本篇文章主要介绍docker网络模式,通信原理及优缺点

一、容器网卡、网桥docker0、veth关系

在介绍docker的4种网络模型之前,先介绍下容器内网卡与宿主机docker0关系。

Docker daemon启动时会创建一个虚拟网桥设备 docker0(在主机上看来是一个网卡),默认地址为 172.17.1.1/16,容器启动后都会被桥接到 docker0 上,并自动分配到一个 IP 地址,以此来实现网络通信。当然要确保docker0是启动状态。

docker0网桥

在这里插入图片描述

当我们启动容器时,ip地址会在docker0地址的基础上递增,第一个启动的容器ip地址为172.100.100.2,第二个启动的容器ip地址为172.100.100.3,以此类推

在这里插入图片描述

当我们启动一个容器时,容器会创建一对虚拟网卡,也就是veth pair。一边在主机上会出现一个veth开头的虚拟网卡,另一边在docker中生成eth0虚拟网卡,网卡只在该容器network namespace中可见。每一个宿主机的veth网卡都对应容器中的eth0网卡,veth网卡都桥接到docker0以此来实现网络通信。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、docker的4种网络模式

模式命令(docker run)简述
bridge模式–net=bridge容器默认模式,容器默认连接到docker0网桥上,通过iptables规则来实现通信
host模式–net=host容器与主机共享网络,使用主机网卡端口等信息
container模式–net=container:NAME_or_ID容器与其他容器共享网络,使用已存在容器的网卡信息,两个容器通过lo回环网卡进行通信
none模式–net=none无网卡信息,用户可根据自己需求自定义网络环境

bridge模式

桥接模式也是docker的默认网络模式,就像上述我们讲到的容器网卡以及网桥的关系,就是讲述的桥接模式的工作方式,这里不再赘述。
在这里插入图片描述

缺点:宿主机意外的其他主机无法与容器进行通信;

   容器的端口均需要在宿主机映射出来,所有的网络规则都通过nat转发来实现,效率相对较低;

host模式

host模式容器可以直接使用宿主机的ip地址与外界通信,就像应用直接跑在主机上一样,弥补了bridge模式的不足。

在这里插入图片描述

启动一个容器查看容器的网卡信息,结果与主机网卡信息一致

在这里插入图片描述

缺点:网络环境隔离性差,容器不再拥有独立的网络栈;

   容器与宿主机共享端口范围,可能出现端口被占用情况;

container模式

container模式容器与容器共享网络栈,两个容器可以更高效的通信

在这里插入图片描述在这里插入图片描述

查看两个容器的网卡配置发现一模一样

在这里插入图片描述

其本质就是将一个容器network namespace加入了一个已存在容器的network namespace

在这里插入图片描述

缺点:与bridge模式一样,宿主机意外的主机无法访问到容器。

none模式

none模式是我们使用最少的,该模式除了lo网卡,其他网络设备均没有定义。这种模式更倾向于开发者去开发新的网络模式,如host模式与container模式就是在此模式开发而来。

在这里插入图片描述在这里插入图片描述


http://chatgpt.dhexx.cn/article/vOlYlUhD.shtml

相关文章

【docker】网络模式

一、Docker网络实现原理 docker使用linux桥接,在宿主机虚拟一个docker容器网桥(docker0) docker启动一个容器时会根据docker网桥的网段分配给容器一个IP地址,称为Container-IP 同时Docker网桥是每个容器的默认网关。因为在同一宿…

Docker-------网络模式

目录 前言 一、Docker 网络实现原理 二、Docker的网络模式 1、Host模式 2、Container模式 3、none模式 4、 bridge模式 三、自定义网络 1、查看网络模式列表 2、查看容器信息(包含配置、环境、网关、挂载、cmd等等信息) 3、指定分配容器IP地址 4、…

【k8s】docker网络模式(必知)

docker网络部分的视频我看了很多,讲解最透彻的还是https://www.bilibili.com/video/BV123411y7TB?p8获取本文方式:见谷粒商城文尾,备注【docker网络】k8s思维导图:https://www.processon.com/view/link/615bc61e637689127946ea5d…

Docker容器如何连接网络+容器间网络互通+Docker网络模式+自定义网络+网络打通

Docker网络 问题:Docker容器如何连接网络Docker容器之间能否接通网络Docker容器之间可以通过名称ping通吗能否自定义一个网络 那么,我们带着几个问题来学习docker的网络 Docker容器是如何连接网络的 我们在安装了Docker以后,在 宿主机上 i…

docker网络模式

目录 一、Docker网络实现原理 二、Docker的网络模式 1、Host模式 2、Container模式 3、none模式 4、bridge模式 三、自定义网络 1、查看网络模式列表 2、查看容器信息(包含配置、环境、网关、挂载、cmd等等信息) 3、指定分配容器IP地址 4、自定义网络固定…

Docker的网络模式

目录 一、Docker网络 1、Docker网络工作原理 2、为容器创建端口映射 二、Docker的网络模式 1、Docker的网络模式 2、查看docker的网络列表 3、指定容器网络模式 三、Docker网络模式详解 1、host模式 2、container模式 3、none 模式 4、bridge 模式 5、自定义网络模…

Docker:(四)docker网络模式

目录 一:虚拟网关 二:docker常用的几种网络模式 2.1Host模式 2.2container模式 2.3bridge模式(默认) 2.4None模式(躺平) 扩展:overlay叠加网络模式 三:自定义网络 3.1查看网…

docker 网络五种模式

docker 网络五种模式 一:Host模式 host容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口范围,如果启动容器的时候使用host模式,那么这个容器将不会获得独立的网卡名称空间,那是和宿主…

Docker 的4种网络模式

我们在使用docker run创建Docker容器时,可以用--net选项指定容器的网络模式,Docker有以下4种网络模式: host模式,使用--nethost指定。container模式,使用--netcontainer:NAME_or_ID指定。none模式,使用--n…

Docker网络模式解析

目录 前言 一、常用基本命令 (一)查看网络 (二)创建网络 (三)查看网络源数据 (四)删除网络 二、网络模式 (一)总体介绍 (二&#xff09…

Docker容器之网络模式

目录 引言 一、Docker网络实现原理 二、Docker的网络模式 2.1、HOST模式 2.2、Container模式 2.3、None模式 2.4、bridge模式 三、自定义网络 3.1、查看网络模式列表 3.2、查看容器详细信息(包含配置、环境、网关、挂载、cmd等信息) 3.3、指定…

docker三种网络模式

1.docker默认的三种网络模式: bridge:桥接模式 host:主机模式 none:无网络模式 查看网络模式: docker network ls 2.桥接模式 简介:桥接模式是docker 的默认网络设置,当Docker服务启动时,…

docker的五种网络模式

目录 一、bridge网络(网桥的方式) 二、host网络 三、none网络 四、自定义网络 五、container模式 一、bridge网络(网桥的方式) 可以很清楚的看出容器和宿主机的关系,当我们docker程序运行时,我们会增加一…

Docker--网络模式

文章目录 一、Docker网络实现原理二、Docker的网络模式1.Host模式2.Container模式3.None模式4.Bridge模式 三、自定义网络1.查看网络模式列表2.查看容器信息(包含配置、环境、网关、挂载、cmd等等信息)3.指定分配容器IP地址 四、暴露端口五、为容器创建端…

Docker系列---网络模式 | Dockerfile | 参数讲解 | 详细说明

网络模式 | Dockerfile Docker 原生网络Docker 网络图解Docker 四种网络模式Host 模式Container模式None模式Bridge模式 Docker 网络自定义查看网络列表自定义网络固定IP暴露端口在宿主机环境执行容器内命令systemctl 命令 Docker 镜像分层Dockerfile 操作指令例:do…

七、Docker网络模式详解

目录 一、docker网络概述1、docker网络实现的原理2.容器的端口映射1).端口映射2).四种端口映射3).端口映射演示(1).随机端口映射(-P)(2).指定端口映射(-p 宿主机端口:容器端口)(3).指定网卡随机端口映射(-p ::&#xf…

使用navicat远程连接mysql时报2059错误解决方法

navicat连接mysql时报2059错误解决方法 报错原因解决方案1、管理员权限打开cmd2、修改加密规则及密码3、退出,重启mysql 报错原因 这个错误出现的原因是在mysql8之前的版本中加密规则为mysql_native_password,而在mysql8以后的加密规则为caching_sha2_pa…

navicat2012连接MySQL时提示2059错误

出现2059这个错误的原因是在mysql8之前的版本中加密规则为mysql_native_password,而在mysql8以后的加密规则为caching_sha2_password。通过网络查找发现我们可以将mysql用户登录的加密规则修改为mysql_native_password。 解决方法: 1.打开cmd&#xff0…

MySQL8:关于进入navicat连接MySQL出现2059界面

一.进入navicat连接MySQL出现2059页面: 原因:MySQL8之前版本中加密规则为mysql_native_password,MySQL8以后的加密规则为caching_sha2_password. 解决:将mysql用户登录加密规则修改为mysql_native_password即可. 二.解决方案: …

2059-Authentication plugin‘caching_sha2_password‘cannot be loaded

2059-Authentication plugin’caching_sha2_password’cannot be loaded 原因 由于目前已有的客户端连接软件还不支持Mysql8新增加的加密方式:caching_sha2_password 老的加密验证方式:mysql_native_password 解决方式 1、打开MySQL 8.0 Command Lin…