docker网络(代码片段)

liujunjun liujunjun     2023-05-02     388

关键词:

Docker 网络概况                              

用一张图来说明 Docker 网络的基本概况:

技术图片

四种单节点网络模式                              

bridge 模式                                          

Docker 容器默认使用 bridge 模式的网络。其特点如下:

使用一个 linux bridge,默认为 docker0
使用 veth 对,一头在容器的网络 namespace 中,一头在 docker0 上
该模式下Docker Container不具有一个公有IP,因为宿主机的IP地址与veth pair的 IP地址不在同一个网段内
Docker采用 NAT 方式,将容器内部的服务监听的端口与宿主机的某一个端口port 进行“绑定”,使得宿主机以外的世界可以主动将网络报文发送至容器内部
外界访问容器内的服务时,需要访问宿主机的 IP 以及宿主机的端口 port
NAT 模式由于是在三层网络上的实现手段,故肯定会影响网络的传输效率。
容器拥有独立、隔离的网络栈;让容器和宿主机以外的世界通过NAT建立通信
关于容器通过 NAT 连接外网的原理,请参考我的另一篇文章 Netruon 理解(11):使用 NAT 将 Linux network namespace 连接外网。
iptables 的 SNTA 规则,使得从容器离开去外界的网络包的源 IP 地址被转换为 Docker 主机的IP地址:

技术图片

技术图片

技术图片

 

 

每个docker都有自己的一个名字命名空间,叫vethX,X是任意数字。每一个容器都会连接在自己的名字命名空间上,名字命名空间又是在我们网桥上创建的,也就意味着这个名字命名空间之间是可以互相通信的,docker网络又依会于名字命令空间,所以docker之间是可以互相通信的。容器访问外网,网桥和真实网卡做一个nat转换。外部访问容器,一个是通过在宿主机上exec进行交互化处理,另一个是通过dnat访问。

Host 模式                                            

定义:

Host 模式并没有为容器创建一个隔离的网络环境。而之所以称之为host模式,是因为该模式下的 Docker 容器会和 host 宿主机共享同一个网络 namespace,故 Docker Container可以和宿主机一样,使用宿主机的eth0,实现和外界的通信。换言之,Docker Container的 IP 地址即为宿主机 eth0 的 IP 地址。其特点包括:

    • 这种模式下的容器没有隔离的 network namespace
    • 容器的 IP 地址同 Docker host 的 IP 地址
    • 需要注意容器中服务的端口号不能与 Docker host 上已经使用的端口号相冲突
    • host 模式能够和其它模式共存

实验:

(1)启动一个 host 网络模式的容器

docker网络(代码片段)

...示本机回环地址eth0:表示阿里云内网(私网)地址docker0:表示docker的网络地址(Docker的网卡),只要安装了Docker就会有的。理解Docker0Docker0就是docker的网卡,只要安装了Docker就会自带Docker0。Docker如何处理容... 查看详情

docker——网络配置(代码片段)

目录本次目标:一、Docker网络配置1.bridge模式(默认模式)2.host模式二、bridge模式三、host模式 网络模式与数据卷容器挂载的操作四、如何创建自定义网络 本次目标:Docker网络配置Docker部署SpringCloud项目一、Docker网络配置Doc... 查看详情

docker网络与容器互联(代码片段)

@[TOC]#Docker网络与容器互联资源推荐Docker官网配置网络:https://docs.docker.com/network/Docker网络详解:https://blog.csdn.net/meltsnow/article/details/94490994Docker四种网络模式:https://www.jianshu.com/p/22a7032bb7bd使用网络网络驱动名称 查看详情

docker下网络的认识与实验(代码片段)

Docker下网络的认识与实验一、简述Docker的网络二、docker四大网络类型+自定义网络三、docker网络模式详细说明1、container模式2、none模式3、Host模式4、bridge模式5、自定义网络a、Docker自定义网络创建步骤一、简述Docker的网络Docker... 查看详情

容器化工具--------docker的网络操作(代码片段)

文章目录Docker网络操作Docker网络实现的原理Docker的网络模式host网络模式container模式none模式Bridge模式自定义网络Docker网络操作Docker网络实现的原理1.Docker使用Linux桥接,在宿主机虚拟一个Docker容器网桥(docker0),Docker启动一... 查看详情

容器化工具--------docker的网络操作(代码片段)

文章目录Docker网络操作Docker网络实现的原理Docker的网络模式host网络模式container模式none模式Bridge模式自定义网络Docker网络操作Docker网络实现的原理1.Docker使用Linux桥接,在宿主机虚拟一个Docker容器网桥(docker0),Docker启动一... 查看详情

docker网络(代码片段)

Docker网络ipaddr查看当前linux虚拟机的ip地址启动tomcat容器,查看其ip地址原理创建tomcat01和tomcat02,测试发现两个容器之间可以相互ping通小结Docker--link:添加主机名和ip的映射--link命令指定别名自定义网络查看所有的docker网络... 查看详情

hellodocker——docker网络(代码片段)

HelloDocker(四)——Docker网络一、DockerNetworkNameSpace1、DockerCNM网络模型Docker通过libnetwork实现CNM网络模型。CNM网络模型有三个组件:(1)Sandbox(沙盒),每个沙盒包含一个容器网络栈(networkstack)的配置,配置包括:容器的网口、路由... 查看详情

docker:四种网络模式(代码片段)

Docker四种网络模式四种网络模式摘自Docker网络详解及pipework源码解读与实践dockerrun创建Docker容器时,可以用--net选项指定容器的网络模式,Docker有以下4种网络模式:host模式,使用--net=host指定。container模式,使用--net=container:NAMEorI... 查看详情

docker网络:bridge模式(代码片段)

本文转自https://www.freeaihub.com/article/bridge-module-in-docker-network.html,该页可在线运行以下实例在前两篇Docker网络:host模式,Docker网络:container模式中我们已经介绍Docker网络模型中的host模式与container模式。本节将对Docker网络模型中的brid... 查看详情

docker网络与存储(代码片段)

Docker的网络和存储1.1Docker的4种网络模式host模式众所周知,Docker使用了Linux的Namespaces技术来进行资源隔离,如PIDNamespace隔离进程,MountNamespace隔离文件系统,NetworkNamespace隔离网络等。一个NetworkNamespace提供了一份独立的网络环境,... 查看详情

docker容器网络(代码片段)

docker容器网络Docker在安装后自动提供3种网络,可以使用dockernetworkls命令查看[root@localhost~]#dockernetworklsNETWORKIDNAMEDRIVERSCOPEcd97bb997b84bridgebridgelocal0a04824fc9b6hosthostlocal4dcb8fbdb599nonenulllocalDocker使用Linu 查看详情

docker网络(代码片段)

docker的几种原生网络模式host:该模式下,容器将不会虚拟出自己的网卡,配置自己的IP等,而是共享Dockerhost的网络栈,容器的网络配置与Dockerhost完全一样None:该模式关闭了容器的网络功能,除了lo,没有其他任何网卡。Bridge:... 查看详情

强力的应用容器引擎——docker网络部分详解(代码片段)

Docker网络部分详解一、docker网络概述1.1docker网络实现的原理1.2docker的网络模式二、docker网络模式详解2.1host模式2.2container模式2.3none模式2.4bridge模式2.5自定义网络模式自定义网络模式创建步骤一、docker网络概述1.1docker网络实现的原... 查看详情

docker网络:host模式(代码片段)

本文转自https://www.freeaihub.com/article/host-module-in-docker-network.html,该页可在线运行当我们准备将Docker技术应用到生产级别的场景时,我们需要了解很多网络方面的知识。网络是Docker中相对比较薄弱的部分,我们有必要了解Docker的网络... 查看详情

docker网络原理详解(代码片段)

Docker网络原理理解docker0Dokcer是如何处理网络访问的[root@docker01~]#dockerrun-d-P--nametomcat01tomcat发现容器启动的时候会得到一个eth0@if32ip地址,这是docker分配的。#查看容器的内部网络地址[root@docker01~]#dockerexec-ittomcat01ipa1:l 查看详情

docker存储与网络(代码片段)

目录Docker存储挂载主机目录创建一个数据卷挂载一个宿主机目录作为数据卷数据卷容器创建一个数据卷容器利用数据卷容器迁移数据删除数据盘Docker网络简介bridge网络bridge网络基本用法基于bridge网络的容器访问外部网络外部网络... 查看详情

docker网络:container模式(代码片段)

本文转自https://www.freeaihub.com/article/container-module-in-docker-network.html,该页可在线运行案例在前一篇Docker网络:host模式中我们已经介绍Docker网络模型中的host模式。本节将对Docker网络模型中的host模型进行理论介绍,再通过案例的实操... 查看详情