docker network

2023-09-17 23:51:38

一、默认的三种网络模式:

  1. Bridge 模式:这是 Docker 默认创建的网络模式。在 Bridge 模式下,Docker 会为每个容器创建一个虚拟网络接口,并分配独立的 IP 地址。容器之间可以相互通信,而且可以通过端口映射让容器内部的服务可以通过主机的 IP 地址和端口进行访问。

  2. Host 模式:在 Host 模式下,容器与主机共享同一个网络命名空间。容器使用主机的 IP 地址和端口进行网络通信,不会有网络地址转换。这意味着容器与宿主机之间的网络性能更好,但容器之间的网络隔离性较弱。

  3. None 模式:在 None 模式下,容器没有网络接口和网络设置。这意味着容器无法与外部网络通信,只能与同一主机上的其他容器进行通信。这种网络模式通常用于一些不需要网络连接的特殊容器场景。

二、常用基本命令

1、查看网络

docker network ls

2、查看网络源数据

docker network inspect network_name

3、删除网络

docker network rm network_name

三、Bridge模式:

当使用 Docker 网络创建容器时,默认情况下会使用 “bridge” 网络驱动程序,并将容器连接到名为 “bridge” 的默认网络上。“bridge” 模式是 Docker 最常用的网络模式之一,它提供了容器之间的通信和与外部网络的连接。

docker0 是 Docker 在 “bridge” 模式下使用的默认网桥,负责连接宿主机和容器。当你在 Docker 主机上安装 Docker 后,会自动创建一个名为 docker0 的网络接口,作为默认的 Docker 网桥。

docker0 网桥有一个 IP 地址,通常是 172.17.0.1/16,这个地址是网络的网关。当你在同一 Docker 主机上创建一个新的容器时,默认情况下会将容器连接到 docker0 网桥,并自动分配一个 172.17.0.x/16 的 IP 地址。

使用 docker network ls 命令,你可以列出当前可用的 Docker 网络,其中包括 bridge 网络,它是一个单独的 Docker 网络。

总结:docker0 是 Docker 在 “bridge” 模式下默认使用的网桥,连接宿主机和容器,而 bridge 模式则是 Docker 默认的网络模式,允许容器之间通信,我在这理解他就是相当于是一个交换机。

四、自定义网络

一般情况下,自定义网络使用的是桥接模式(bridge mode)

docker network create network_name

五、运行容器并连接到网络

docker run --network=my-net --name=container_name image_name

这将在默认的 “my-net” 网络上创建一个新的容器,并连接到该网络上。

六、【补充】桥接模式下的两两匹配(veth、eth)

在桥接模式下,Docker 使用 veth(虚拟以太网)设备来连接容器。veth 设备是成对出现的虚拟网络接口,一端附加在容器中,另一端附加在宿主机的网桥接口上。

当你在启动容器时,Docker 会创建一个新的 veth 设备对,并将一端分配给容器,另一端则连接到 docker0 网桥接口。

在容器中,veth 接口被命名为 eth0,其中 eth 表示以太网接口编号。容器内的网络栈会将 eth0 视为容器的网络接口,并分配一个IP地址。

例如,假设你创建了一个名为 my-net 的自定义网络,并在该网络上启动了一个名为 container1 的容器。那么容器内部的网络接口 eth0 将通过一个与之对应的 veth 设备与 docker0 网桥接口连接起来。

这种方式使得容器可以通过 eth0 接口与它所连接到的网络进行通信,包括与同一网络上的其他容器以及宿主机的通信。同时,宿主机和外部网络也可以通过 docker0 接口与容器进行通信。

请注意,每个容器的 veth 设备和 eth0 接口是相互独立的,它们在网络中具有不同的MAC地址和IP地址。这样确保了容器之间的隔离,并在网络上提供了多个独立的网络实体。在这里插入图片描述

更多推荐

【zookeeper】基于Linux环境安装zookeeper集群

前提,需要有几台linux机器,我们可以准备好诸如finalshell来连接linux并且上传文件;其次Linux需要安装上ssh,并且在/etc/hosts文件中写好其他几台机器的名字和Ip127.0.0.1localhostlocalhost.localdomainlocalhost4localhost4.loca

ChatGLM 大模型外挂(向量)知识库

前言如果我们想往大模型里边注入知识,最先能想到的就是对大模型进行微调。笔者曾实验过,只用几十万量级的数据对大模型进行微调并不能很好的将额外知识注入大模型,笔者在算力这方面囊中羞涩,只有4块卡,这几十万量级的数据训练6B的模型都要训练好几天。。。如果不微调的话,其实还是可以利用外挂数据库的方式让大模型利用额外的知识的,比

Python案例|使用卷积网络对星系图片进行分类

星系动物园(galaxyzoo)是由牛津大学等研究机构组织并邀请公众协助的志愿者科学计划,目的是为超过100万个星系图像进行分类。这是天文学中一次规模浩大的公众星空普查活动,大众参与热情高涨,在近十万名志愿者的积极参与下,只用了175天就完成了第一阶段的星系动物园项目:对95万个星系进行了分类,而且平均每个星系被分类了

Haproxy集群调度器与部署

一、Haproxy介绍:1.Haproxy应用分析:LVS在企业中康复在能力很强,但存在不足:LVS不支持正则处理,不能实现动静分离对于大型网站LVS的事实配置较为复杂,维护成本相对较Haproxy是一款可以供高可用性、负载均衡和基于TCP和HTTP应用的代理软件非常适用于并发大(并发达1w以上)web站点,可保持站点

高阶数据结构(2)-----红黑树(未完成)

一)红黑树的基本概念和基本性质:1)红黑树就是一种高度平衡的二叉搜索树,但是在每一个节点上面都增加了一个存储位来表示结点的颜色,可以是红色或者是黑色,通过对任何一条从根节点到叶子节点上面的路径各个节点着色方式的限制,红黑树会自动确保没有一条路经会比其他路径的长度高出两倍,而是接近平衡的2)红黑树最长路径是最短路径的两倍

vue3 effect.spec

🎬岸边的风:个人主页🔥个人专栏:《VUE》《javaScript》⛺️生活的理想,就是为了理想的生活!目录原型观察的对象的变更会同步到原始对象重复观察相同的原始对象直接返回相同的proxy对象不会污染原始对象通过toRawapi可以返回被观察对象的原始对象shallowReactive结语定义一个对象origina

JavaScript的三大组成部分是什么?JavaScript的核心组成部分解析:语法、BOM和DOM

🌷🍁博主猫头虎带您GotoNewWorld.✨🍁🦄博客首页——猫头虎的博客🎐🐳《面试题大全专栏》文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺🌊《IDEA开发秘籍专栏》学会IDEA常用操作,工作效率翻倍~💐🌊《100天精通Golang(基础入门篇)》学会Golang语言,畅玩云原生,走遍大

Nex.js Web 应用程序 SSG 与 SSR——选择正确的渲染方法

Next.js,一个流行的React框架,改变了开发人员构建现代Web应用程序的方式。它提供了强大的功能,例如服务器端渲染(SSR)和静态站点生成(SSG),可优化应用程序的性能和用户体验。在这篇博文中,我们将探讨SSG和SSR之间的主要区别、它们的优势、何时选择其中一种方法,以及如何使用AWSAmplify部署这两种

基于ASCON的AEAD

1.引言前序博客:ASCON:以“慢而稳”赢得NIST轻量级加密算法标准密码学中的AEAD(authenticatedencryptionwithassociateddata)对称密钥加密过去数年来已发生改变,具体为:当今主要使用streamciphers,因其比blockciphers要快得多。经常会使用AEAD(A

Python | 为FastAPI后端服务添加API Key认证(分别基于路径传参和header两种方式且swagger文档友好支持)

文章目录01前言02路径传参方式添加APIKey2.1完整代码2.2请求示例2.3swagger文档测试03请求头Header方式传入APIKey(推荐)3.1完整代码3.2请求示例3.3swagger文档测试01前言FastAPI,如其名所示,是一个极为高效的框架,特别适用于构建API后端服务。而在与其他网站的API

软件测试目的和原则

【软件测试面试突击班】如何逼自己一周刷完软件测试八股文教程,刷完面试就稳了,你也可以当高薪软件测试工程师(自动化测试)一、软件测试的目的1)软件测试是为了发现错误而执行程序的过程。2)测试是为了证明程序有错,而不是证明程序无错。(发现错误不是唯一目的)3)一个好的测试用例在于它发现至今未发现的错误。4)一个成功的测试是

热文推荐