首页 > 其他分享 >Docker 网络类型详解

Docker 网络类型详解

时间:2023-06-06 23:56:39浏览次数:49  
标签:容器 宿主机 Namespace 网络 nginx host 详解 Docker

通过 docker network ls 命令来查看本地 docker 服务支持的网络类型。

image

host 网络类型

Docker 使用了 Linux 的 Namespaces 技术来进行资源隔离,如 PID Namespace 隔离进程,Mount Namespace 隔离文件系统,Network Namespace 隔离网络等。一个 Network Namespace 提供了一份独立的网络环境,包括网卡、路由、Iptable 规则等都与其他的 Network Namespace 隔离。

我们可以使用 --net=host 指定 Docker 容器处于 host 类型的网络中。host 模式类似于 Vmware的桥接模式,与宿主机在同一个网络中,但没有独立 IP 地址。一个 Docker 容器一般会分配一个独立的 Network Namespace。但如果启动容器的时候使用 host 模式,那么这个容器将不会获得一个独立的 Network Namespace,而是和宿主机共用一个 Network Namespace。容器将不会虚拟出自己的网卡,配置自己的 IP 等,而是使用宿主机的 IP 和端口。

如下图所示:容器与主机在相同的网络命名空间下面,使用相同的网络协议栈,容器可以直接使用主机的所有网络接口。

image

# 注:官方的nginx镜像里面不包含ip addr和vim命令,这里是基于官方nginx镜像安装了iproute2
#和vim重新commit了一个guianjun/mynginx:v2.0基础镜像,便于实验
docker run -itd --name my_nginx --net=host -p 80:80 guianjun/mynginx:v2.0 /bin/bash

#在容器中执行ip addr命令,查看网络
docker exec -it my_nginx ip addr

image

image

可以看到容器 my_nginx 的网络配置与宿主机 hosts 的网络配置完全一样,在容器中可以看到 host 的所有网卡,并且连 hostname 也是跟宿主机一样的。从网络层面来看,host 模式下的容器只是宿主机上的一个端口,比如这里的 my_nginx 容器映射的是宿主机上的80端口,那么可以根据宿主机 ip+映射端口来实现对容器的访问。

image

host 模式的特点和应用场景:host 模式简单并且网络传输性能高,host 模式下面的网络模型是最简单和最低延迟的模式,容器进程直接与主机网络接口通信,与物理机性能一致,host 不利于网络自定配置和管理,并且所有主机的容器使用相同的 IP。也不利于主机资源的利用,需要考虑端口冲突问题,缺乏灵活性,如果是对网络性能要求比较高的情况下可以使用该模式,否则应该使用其他模式。

bridge 网络类型

标签:容器,宿主机,Namespace,网络,nginx,host,详解,Docker
From: https://www.cnblogs.com/werr370/p/17462102.html

相关文章

  • Python中TensorFlow的长短期记忆神经网络(LSTM)、指数移动平均法预测股票市场和可视化
    原文链接:http://tecdat.cn/?p=23689最近我们被客户要求撰写关于LSTM的研究报告,包括一些图形和统计输出。本文探索Python中的长短期记忆(LSTM)网络,以及如何使用它们来进行股市预测 ( 点击文末“阅读原文”获取完整代码数据******** )。在本文中,你将看到如何使用一个被称为长短时......
  • (转)linux ethtool 命令详解
    原文:https://blog.csdn.net/weixin_43214644/article/details/1264712291概述ethtool是用于查询及设置网卡参数的命令。2命令详解2.1命令格式(1)语法ethtool[-a|-c|-g|-i|-d|-k|-r|-S|]ethXethtool[-A]ethX[autonegon|off][rxon|off][txon|of......
  • 2018年湖南省对口高考计算机应用类《网络》部分试题分析
    ......
  • DeepBurning:神经网络系列学习加速器自动生成
    介绍一下这篇论文所做的工作。Introduction首先是背景方面,现在出现了CNN、RNN、LSTM等多种神经网络,如何使用硬件加速的方法让这些网络跑的更快?现在已经有的工作:1.GPGPU加速矩阵乘法,可以处理非常大规模的CNN和多种GPU支持的学习框架,但缺点是硬件开销非常大,难以应用在嵌入式......
  • docker desktop记录___docker命令操作
    继续接上一篇的<dockerdesktop安装部署及使用>,接着介绍docker。上一篇主要介绍的是安装部署,以及dockerdesktop的使用(客户端上操作使用)。本篇主要介绍的是基于docker命令的操作和使用。还是以mysql为例,从使用docker命令进行mysql镜像的下载、容器创建、容器查询、进入......
  • Docker系列 | docker endpoint for “default” not found
    启动docker报错ForWindowsUsers1.Delete.dockerdirectory.WhichexistsonPATHC:\Users\your-username\.docker2.Restartdocker重新运行  ......
  • centOS 安装docker
    一、安装前必读在安装Docker之前,先说一下配置,我这里是Centos7Linux内核:官方建议3.10以上。注意:本文的命令使用的是root用户登录执行,不是root的话所有命令前面要加 sudo1.查看当前的内核版本[root@localhostvagrant]#uname-r3.10.0-327.4.5.el7.x86_64[root@l......
  • 指针计算详解
    intmain(){ inta[5]={1,2,3,4,5}; int*ptr=(int*)(&a+1);//&a+1跳过整个数组后的地址数组类型转换后存入*ptr printf("%d\n",*(ptr-1));//ptr-1解引用获得的是a[5]的值 p=(structtest*)0x100000; printf("struct大小=%d\n",sizeof(*p));//结构体大小是24......
  • Docker(二)自定义镜像
    Dockerfile是生成镜像脚本的应答文件,Dockerfile是比commit更强大的镜像编排方式Dockerfile语法格式:FROM:基础镜像MAINTAINER:镜像创建者信息EXPOSE:开放的端口ENV:设置变量ADD:复制文件到镜像RUN:制作镜像时执行的命令,可以有多个WORKDIR:定义容器默认工作目录CMD:容器启......
  • Docker for Windows 中文文档(3)——Docker Settings
    Docker设置Docker运行时,显示Docker鲸鱼。默认情况下,Docker鲸鱼图标被放置在“通知”区域中。如果隐藏,单击任务栏上的向上箭头显示。提示:您可以将鲸鱼固定在通知框外面,使其始终在任务栏上可见。为此,拖放鲸鱼图标。或者,右键单击任务栏的空白部分,选择设置,然后通过任务栏设置为通知......