当前位置: 首页 > news >正文

城乡建设局网站首页一般做网站价格

城乡建设局网站首页,一般做网站价格,注册网站时跳过验证码,建设公司网站要注意什么Docker 的网络通信 1.Docker 容器网络通信的基本原理1.1 查看 Docker 容器网络1.2 宿主机与 Docker 容器建立网络通信的过程 2.使用命令查看 Docker 的网络配置信息3.Docker 的 4 种网络通信模式3.1 bridge 模式3.2 host 模式3.3 container 模式3.4 none 模式 4.容器间的通信4.… Docker 的网络通信 1.Docker 容器网络通信的基本原理1.1 查看 Docker 容器网络1.2 宿主机与 Docker 容器建立网络通信的过程 2.使用命令查看 Docker 的网络配置信息3.Docker 的 4 种网络通信模式3.1 bridge 模式3.2 host 模式3.3 container 模式3.4 none 模式 4.容器间的通信4.1 通过 IP 地址进行通信4.2 通过 Docker DNS Server 进行通信4.3 通过 Joined 方式进行通信4.4 容器间的跨节点通信4.4.1 三种方式4.4.2 Overlay 网络与注册中心 5. 容器的网络访问控制5.1 容器内的应用访问外部网络5.2 从外部网络访问容器内的应用 Docker 的容器运行在宿主机的虚拟机上。这些虚拟机彼此独立彼此之间没有任何接口即容器彼此之间是 逻辑隔离 的。 那么如何实现容器的相互通信呢容器又如何访问外部的网络呢外部的网络如何才能访问部署在容器内的应用呢本篇博客将带领大家了解这些问题。 1.Docker 容器网络通信的基本原理 Docker 容器中的网络接口默认都是 虚拟接口。虚拟接口的最大优势是转发效率极高。这是因为 Linux 通过在内核中进行数据复制来实现虚拟接口之间的数据转发即发送接口缓存中的数据包会被直接复制到接收接口的缓存中而无需通过外部的物理网络设备进行交换。 ⭐ 虚拟接口和一个正常的以太网卡并无太大区别只是它的速度比以太网卡快的多。 Docker 的网络很好地利用了 Linux 虚拟网络技术在宿主机的物理网卡和容器内分别创建一个虚拟接口veth并让它们通过宿主机的 docker0 网桥进行连接我们把这样的一对 veth 叫做 veth pair。 1.1 查看 Docker 容器网络 基于 CentOS 的镜像创建一个容器并进入该容器内。 docker run -it centos /bin/bash为了查看容器的网络信息在容器内安装 net-tools 网络工具。 yum install -y net-tools在宿主机打开一个命令行窗口执行以下命令查看宿主机的 docker0 网桥信息。 ifconfig在容器内执行以下命令查看容器网络信息。 ifconfig容器内的网络地址和宿主机的网络地址具有相同的 flag。这说明在创建容器时会成对地创建 veth pair并且它们通过宿主机的 docker0 网桥进行通信。 1.2 宿主机与 Docker 容器建立网络通信的过程 2.使用命令查看 Docker 的网络配置信息 利用以下命令查看 Docker 的网络通信模式。 docker network ls查看 bridge 模式的详细信息。 docker network inspect 20ca9d84d5b43.Docker 的 4 种网络通信模式 3.1 bridge 模式 bridge 模式是 Docker 默认的网络通信模式是开发者最常用的模式。 在 bridge 模式下Docker 引擎会创建独立的网络命名空间。这样就可以保证运行在每一个命名空间中的容器具有独立的网卡等网络资源。 利用 bridge 模式可以非常方便地实现容器与容器之间、容器与宿主机之间的网络隔离。通过使用宿主机上的 docker0 网桥可以实现多个容器与宿主机乃至外部网络的网络通信。 3.2 host 模式 在使用 host 模式时容器与宿主机共享同一个网络命名空间容器的 IP 地址与宿主机的 IP 地址相同。如果宿主机具有公网的 IP 地址则容器也拥有这个公网的 IP 地址。即这时容器可以直接使用宿主机的 IP 地址与外界进行通信且容器内服务的端口也可以直接使用宿主机的端口无需进行任何的转换。 由于在 host 模式下不再需要宿主机的转发因此其性能得到了极大的提高。 尽管使用 host 模式可以很方便的通过 localhost 或者 127.0.0.1 实现容器与宿主机的相互访问并且性能也比较好但是这种模式也存在以下两个问题 由于容器使用了宿主机的网络环境因此网络环境的隔离性功能被减弱从而造成宿主机和容器争用网络资源。容器本身也不再拥有所有的网络资源而是与宿主机共享网络资源。宿主机和容器使用了相同的 IP 地址这不利于网络的配置和管理。 3.3 container 模式 在 container 模式下容器之间会共享网络环境。即一个容器会使用另一个容器的网络命名空间。因此在这种模式下容器之间可以通过 localhost 或者 127.0.0.1 进行互相间的访问从而提高了传输的效率。 ⭐ container 模式节约了网络资源但是运行在这种模式下的容器不存在网络隔离。Container 网络的隔离性处于 bridge 网络与 host 网络之间。 container 模式在一些特殊场景中非常有用。例如在 K8s 中创建 Pod 时会首先创建 Pod 基础容器而 Pod 中的其他容器则采用 container 模式与基础容器进行通信。Pod 中的各个容器采用 localhost 或者 127.0.0.1 进行通信从而将 Pod 中的所有容器形成一个逻辑整体。 3.4 none 模式 none 模式下的容器具有独立的网络命名空间但不包含任何网络配置。只能通过 Local Loopback 网卡与容器进行通信即只能使用 localhost 或者 127.0.0.1 访问容器。 在 none 模式下需要手动进行网络配置例如使用 pipwork 工具指定容器的 IP 地址等。 4.容器间的通信 4.1 通过 IP 地址进行通信 在宿主机上创建一个容器时Docker 守护进程会为每一个新创建的容器自动分配一个虚拟的 IP 地址。但是外部的网络是无法通过这个虚拟 IP 地址访问容器内的应用的。 ⭐ 这个虚拟 IP 地址只提供 Docker 内部各个容器相互通信使用。即通过这个 IP 地址实现了 Docker 内容器之间的互相连通。 4.2 通过 Docker DNS Server 进行通信 在实际的使用过程中通过容器的虚拟 IP 地址进行容器间的相互通信非常不利于管理和维护。 从 Docker 1.10 版本开始Docker 引擎自带了一个内嵌的 DNS Server。有了它容器之间可以直接通过容器名称进行通信。这种通信方式的使用方法也非常简单在启动容器时使用 --name 参数为容器命名即可。 docker run -it --networkbridge2 --name box1 busybox docker run -it --networkbridge2 --name box2 busyboxbridge2 是一个 bridge 模式的自定义网络。busybox 是一个集成了一百多个最常用 Linux 命令和工具的软件工具箱。box1、box2 是容器名称。 例如在容器 box1 内执行 ping 命令以确认是否能使用容器名称与对方进行通信。 ping box24.3 通过 Joined 方式进行通信 Joined 是 Docker 引擎提供的一种特殊的容器间通信方式其本质上使用了 container 模式。因为在 container 模式下多个容器共享同一个网络环境也共享网卡的配置。因此在 container 模式下容器之间可以直接通过 localhost 或者 127.0.0.1 进行通信。 例如在 box2 容器中通过 wget 127.0.0.1 命令可以直接访问 box1 容器的 HTTP 服务。 4.4 容器间的跨节点通信 在同一台宿主机中不同的多个容器可以借助 docker0 网桥直接进行通信。而在实际的项目中一个复杂的系统往往需要部署多个组件而为了提高组件的运行效率往往将这些组件部署到不同的主机上。那么在 Docker 中如何实现容器间的跨节点通信呢 4.4.1 三种方式 通过容器在宿主机上的端口映射来实现通信。使用这种方式实现容器间的跨节点通信需要宿主机进行转发所以使用起来非常不方便。通过 Docker Overlay 网络来实现通信。这种方式可以直接使用容器本身的虚拟 IP 地址进行相互通信这与运行在同一台宿主机上的不同容器间的通信方式完全一样。Docker 原生的 Overlay 网络是目前实现容器跨节点通信的主流方式。要使用 Overlay 网络需要注册中心的支持。通过第三方网络来实现容器间的跨节点通信。 4.4.2 Overlay 网络与注册中心 Overlay 网络是在不改变现有网络的前提下对 IP 报文进行数据的封装从而利用 IP 路由协议实现数据的转发功能。在 Overlay 网络中通过拓展标识符可以支持 16M 的用户。 Docker 的 Swarm 集群便是 Overlay 网络的一个实现而使用 Overlay 网络需要注册中心的支持。注册中心能够提供服务的注册与发现功能。Docker 支持的注册中心有 Zookeeper、Consul 和 ETCD。 5. 容器的网络访问控制 5.1 容器内的应用访问外部网络 在默认情况下容器内的应用访问外部网络是通过宿主机上的 docker0 网桥来实现的。当容器内的应用需要访问外部网络时需要宿主机进行转发。 执行以下指令可以确定宿主机的 Linux 是否开启了 IP 数据包转发功能。 sysctl net.ipv4.ip_forward如果返回 1 1 1则表示已开启。如果返回 0 0 0则表示未开启。 可以执行以下语句开启此功能。 sysctl -w net.ipv4.ip_forward1开启此功能的另一种方式是在启动 Docker 服务时指定参数 --ip-forwardtrue。这样 Docker 守护进程会自动将宿主机 ip_forward 参数设置为 1 1 1。 5.2 从外部网络访问容器内的应用 运行在宿主机上的容器允许从外部网络访问其内部的应用这主要是通过 -p 参数来实现的。 通过在创建容器时指定 -p 参数可以将容器内的某个端口与宿主机绑定来完成宿主机与容器的端口映射。基本质是在宿主机 iptable 表中添加相应的路由转发规则对访问外部 IP 地址的数据包进行转换将其访问的目标地址修改为容器的 IP 地址和容器内的端口。 基于 Nginx 的镜像创建一个容器并将容器的 80 80 80 端口映射到宿主机的 1234 1234 1234 端口。 docker run -d -p 1234:80 nginx在宿主机上通过以下命令来查看 iptable 表中的路由转发规则。 iptables -t nat -L -n | grep 1234
http://www.sczhlp.com/news/163423/

相关文章:

  • 丰城建设网站西安有什么网站
  • 重庆低价网站建设企业官方网站建设的作用
  • 小偷程序做的网站能用吗公司网站应达到的功能
  • 网站建设的案例教程安徽六安有哪些区县
  • 定制版网站建设详细报价如何用书签 做网站接口
  • logo设计竞标网站承德网站建设案例
  • 网站开发技术试验教程查询网站服务器类型
  • 网站制作课程介绍内蒙古建设工程信息网
  • 金银饰品那家网站做的好网站技术培训班
  • 如何进行网站管理网站建设专业的有哪些
  • 六安关于建设审批的网站做选择的网站
  • 怡清源企业网站建设可行性分析国外英文网站
  • 个人设计网站模板百度趋势搜索
  • 南京优化网站彩虹二级域名分发
  • 高明网站建设制作ppt的软件app
  • Ros2_control浅析——一个机器人开发通用框架的结构(1)
  • Set
  • 中国数据统计网站做类型网站
  • 网站pv多少可以河南商务学校网站建设
  • 台州建站模板搭建网站降权怎么办
  • 河南网站优化企业邮箱注册登录入口
  • 金华做网站多少钱培训班招生方案有哪些
  • 个性化网站建设公司大连响应式网站
  • flash网站源码下载深圳企业建站公司
  • 常州微信网站建设咨询一个公司是否能备案多个网站
  • 做网站还用注册商标吗用源码做自己的网站
  • 合肥网站建设外包自己在家怎么学编程
  • 免费建设网站设计页面城建网官网12319
  • 网站建设拾金手指下拉上海建设工程质监站网站
  • 济源制作网站建站神器跟wordpress哪个好