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

相关文章

系统架构师考试学习笔记第三篇——架构设计高级知识(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

Spring框架5 - 容器的扩展功能 (ApplicationContext)

private static ApplicationContext applicationContext;static {applicationContext = new ClassPathXmlApplicationContext("bean.xml");} BeanFactory的功能扩展类ApplicationContext进行深度的分析。ApplicationConext与 BeanF

容器编排平台Kubernetes简介

目录 什么是K8s 为什么需要K8s 什么是容器(Contianer) K8s能做什么? K8s的架构原理  控制平面(Control plane)         kube-apiserver         etcd         kube-scheduler         kube-controller-manager         cloud-controlle

【C++学习笔记 20】C++中的智能指针

智能指针的功能 在上一篇笔记提到了在栈和堆上创建变量的区别,使用new关键字创建变量时,需要搭配delete关键字销毁变量。而智能指针的作用就是调用new分配内存时,不必自己去调用delete,甚至不用调用new。 智能指针实际上就是对原始指针的包装。 unique_ptr 最简单的智能指针,是一种作用域指针,意思是当指针超出该作用域时,会自动调用delete。它名为unique的原因是这个

vue2 组件通信

props + emits props:用于接收父组件传递给子组件的数据。可以定义期望从父组件接收的数据结构和类型。‘子组件不可更改该数据’emits:用于定义组件可以向父组件发出的事件。这允许父组件监听子组件的事件并作出响应。(比如数据更新) props检查属性 属性名类型描述默认值typeFunction指定 prop 应该是什么类型,如 String, Number, Boolean,

【JavaScript】LeetCode:16-20

文章目录 16 无重复字符的最长字串17 找到字符串中所有字母异位词18 和为K的子数组19 滑动窗口最大值20 最小覆盖字串 16 无重复字符的最长字串 滑动窗口 + 哈希表这里用哈希集合Set()实现。左指针i,右指针j,从头遍历数组,若j指针指向的元素不在set中,则加入该元素,否则更新结果res,删除集合中i指针指向的元素,进入下一轮循环。 /*** @param

linux中使用rust语言在不同进程之间通信

第一种:使用mmap映射相同文件 fn main() {let pid = std::process::id();println!(

C++编程:ZeroMQ进程间(订阅-发布)通信配置优化

文章目录 0. 概述1. 发布者同步发送(pub)与订阅者异步接收(sub)示例代码可能的副作用: 2. 适度增加缓存和队列示例代码副作用: 3. 动态的IPC通道管理示例代码副作用: 4. 接收消息的超时设置示例代码副作用: 5. 增加I/O线程数量示例代码副作用: 6. 异步消息发送(使用`dontwait`标志)示例代码副作用: 7. 其他可以考虑的优化项7.1 立即发送(ZMQ_IM