20.Dcoker跨宿主机容器通信之overlay

2024-06-19 11:12

本文主要是介绍20.Dcoker跨宿主机容器通信之overlay,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Dcoker跨宿主机容器通信之overlay

http://www.cnblogs.com/CloudMan6/p/7270551.html
环境准备,三台机器,主机名为docker01(192.168.111.11)、docker02(192.168.111.12)、docker03(192.168.111.13)
voerlay将所有docker环境的主机(IP)地址进行集中管理IP分配情况(通过consul分配管理,consul会知道哪个IP地址被分配了,下一次在起新容器的时候就会从consul这里分配,所以IP地址就不会冲突;consul类似于nosql,以键值对存在,当作非关系型数据库使用
docker01和docker02都要配置daemon.json文件添加cluster信息连接docker03(consul服务)。
还要配置发送clinet信息标识,便于区分docker主机,连接consul服务的时候也要带上主机的信息IP:PORT
在这里插入图片描述

1)准备工作

docker03上:

#镜像不存在,可以在线下载即可
docker pull progrium/consul
docker run -d -p 8500:8500 -h consul --name consul progrium/consul -server -bootstrap

注释:–name表示给容器起一个名字
-h 表示给容器的主机名起一个名字,也就是容器里面的hostname设置容器的主机名
consul:kv类型的存储数据库(key:value)
浏览器访问http://192.168.111.13:8500/出现web界面
在这里插入图片描述

docker01、02上:(配置里面起一个2376监听端口,在起一个通讯sock;)

vim  /etc/docker/daemon.json
{"hosts":["tcp://0.0.0.0:2376","unix:///var/run/docker.sock"],"cluster-store": "consul://192.168.111.13:8500","cluster-advertise": "192.168.111.11:2376"
}

docker01和docker02机器配置文件添加
在这里插入图片描述

daemon.json配置文件修改重启docker服务发现报错
在这里插入图片描述

查看报错日志/var/log/messages;发现根据我要报错的内容发生冲突了,我报错的内容是tcp:等,但是他检测的是fd://
在这里插入图片描述

通过查看docker状态,来查看docker.service的文件进行修改
在这里插入图片描述

vim /usr/lib/systemd/system/docker.service
将docker01和docker02主机都将-H fd://内容直接删除掉即可
在这里插入图片描述

docker01和docker02两台机器重启服务
systemctl daemon-reload
systemctl restart docker
在访问浏览器点击nodes发现两个docker节点
在这里插入图片描述

2)创建overlay网络

#docker01和docker02任意一台主机执行即可
docker network create -d overlay --subnet 172.16.1.0/24 --gateway 172.16.1.254 ol1

发现两台机器的网络类型都已经存在global,而且网络ID都是一样的
在这里插入图片描述

3)启动容器测试

docker run -it --network ol1 --name test01  busybox /bin/sh

根据容器的名字进行区分创建容器,ping容器的名字可以知道IP地址,而且不通宿主机的容器之间都可以互通。
在这里插入图片描述

每个容器有两块网卡,eth0实现容器间的通讯,eth1实现容器访问外网
在这里插入图片描述

容器中的eth1对应宿主机的docker_awbridae进行上网
在这里插入图片描述

网络通信的流程,容器的eth1通过宿主机的bw_gateway网卡然后nat转换内核转发到eth0,上外网

在这里插入图片描述

这篇关于20.Dcoker跨宿主机容器通信之overlay的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1074862

相关文章

如何高效移除C++关联容器中的元素

《如何高效移除C++关联容器中的元素》关联容器和顺序容器有着很大不同,关联容器中的元素是按照关键字来保存和访问的,而顺序容器中的元素是按它们在容器中的位置来顺序保存和访问的,本文介绍了如何高效移除C+... 目录一、简介二、移除给定位置的元素三、移除与特定键值等价的元素四、移除满足特android定条件的元

如何将Tomcat容器替换为Jetty容器

《如何将Tomcat容器替换为Jetty容器》:本文主要介绍如何将Tomcat容器替换为Jetty容器问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Tomcat容器替换为Jetty容器修改Maven依赖配置文件调整(可选)重新构建和运行总结Tomcat容器替

C++从序列容器中删除元素的四种方法

《C++从序列容器中删除元素的四种方法》删除元素的方法在序列容器和关联容器之间是非常不同的,在序列容器中,vector和string是最常用的,但这里也会介绍deque和list以供全面了解,尽管在一... 目录一、简介二、移除给定位置的元素三、移除与某个值相等的元素3.1、序列容器vector、deque

C++常见容器获取头元素的方法大全

《C++常见容器获取头元素的方法大全》在C++编程中,容器是存储和管理数据集合的重要工具,不同的容器提供了不同的接口来访问和操作其中的元素,获取容器的头元素(即第一个元素)是常见的操作之一,本文将详细... 目录一、std::vector二、std::list三、std::deque四、std::forwa

Python容器类型之列表/字典/元组/集合方式

《Python容器类型之列表/字典/元组/集合方式》:本文主要介绍Python容器类型之列表/字典/元组/集合方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 列表(List) - 有序可变序列1.1 基本特性1.2 核心操作1.3 应用场景2. 字典(D

Go语言中三种容器类型的数据结构详解

《Go语言中三种容器类型的数据结构详解》在Go语言中,有三种主要的容器类型用于存储和操作集合数据:本文主要介绍三者的使用与区别,感兴趣的小伙伴可以跟随小编一起学习一下... 目录基本概念1. 数组(Array)2. 切片(Slice)3. 映射(Map)对比总结注意事项基本概念在 Go 语言中,有三种主要

Spring核心思想之浅谈IoC容器与依赖倒置(DI)

《Spring核心思想之浅谈IoC容器与依赖倒置(DI)》文章介绍了Spring的IoC和DI机制,以及MyBatis的动态代理,通过注解和反射,Spring能够自动管理对象的创建和依赖注入,而MyB... 目录一、控制反转 IoC二、依赖倒置 DI1. 详细概念2. Spring 中 DI 的实现原理三、

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

K8S(Kubernetes)开源的容器编排平台安装步骤详解

K8S(Kubernetes)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。以下是K8S容器编排平台的安装步骤、使用方式及特点的概述: 安装步骤: 安装Docker:K8S需要基于Docker来运行容器化应用程序。首先要在所有节点上安装Docker引擎。 安装Kubernetes Master:在集群中选择一台主机作为Master节点,安装K8S的控制平面组件,如AP

【STM32】SPI通信-软件与硬件读写SPI

SPI通信-软件与硬件读写SPI 软件SPI一、SPI通信协议1、SPI通信2、硬件电路3、移位示意图4、SPI时序基本单元(1)开始通信和结束通信(2)模式0---用的最多(3)模式1(4)模式2(5)模式3 5、SPI时序(1)写使能(2)指定地址写(3)指定地址读 二、W25Q64模块介绍1、W25Q64简介2、硬件电路3、W25Q64框图4、Flash操作注意事项软件SPI读写W2