容器网络(桥接、host、none)及跨主机网络(etcd、flannel、docker)

news2024/12/25 9:08:36

1.本地网络

1.bridge

        所有容器连接到桥就可以使用外网,使用nat让容器可以访问外网,使用ip a s指令查看桥,所有容器连接到此桥,ip地址都是 172.17.0.0/16网段,桥是启动docker服务后出现,在centos使用bridge-utils安装。

下载bridge-utils

[root@docker0 ~]# yum -y install bridge-utils

 启动docker并运行了一个容器,发现有两个接口被使用

[root@docker0 ~]# brctl show
bridge name	bridge id		STP enabled	interfaces
docker0		8000.0242bbcb6f92	no		veth3b2a111
							            veth432a975

 使用docker network查看桥

[root@docker1 ~]# docker network --help
Usage: docker network COMMAND
Manage networks
Commands:
 connect     Connect a container to a network
 create     Create a network
 disconnect Disconnect a container from a network
 inspect     Display detailed information on one or more networks
  ls         List networks
 prune       Remove all unused networks
  rm         Remove one or more networks
Run 'docker network COMMAND --help' for more 
information on a command.
[root@docker1 ~]# docker network ls
NETWORK ID     NAME           DRIVER   SCOPE
01fa71620d73   bridge         bridge   local
f46543c13863   host           host     local
c220508b862f   none           null     local

 每一台dcoker host上的docker0所在网段完全一样,但是会造成跨主机的容器无法通信。

2.host

与主机共享网络,可让容器连接外网所有容器与docker主机在同一个网络中,容器和外网相互访问。

绑定host主机网络

[root@docker001 001]# docker run -it --network host yum:v0 /bin/bash
[root@docker001 /]# yum -y install iprout
#内部查看ip是本地主机ip
# 外部查看ip 没有
[root@docker001 001]# docker inspect 306d|grep IPAdd
            "SecondaryIPAddresses": null,
            "IPAddress": "",
                    "IPAddress": "",

主机名同真机,网络也同真机

优点:可以直接访问容器

缺点:端口占用,多容器同时运行一个服务,不建议,在测试环境中使用

3.none

容器仅仅有lo网卡,不能与外界链接,在高级应用中使用lo网卡,无法链接外网

2.跨主机网络

跨主机之间的通讯工具---flannel

overlay 覆盖型网络,不支持路由转发,通过数据etcd数据库保存子网信息以及网络分配信息

部署两台主机

主机名

ip

功能

软件

node1

x.x.x.10

主控主机

etcd flannel docker

node2

x.x.x.11

被控主机

etcd docker

1.主控 
1.安装etcd数据库
yum -y install etcd
2.安装flannel
yum -y install flanneld
3.修改etcd数据库配置
vim /etc/etcd/etcd.conf

 

4.启动访问
systemctl start etcd.service
5.设置开机自启
systemctl enable etcd.service 
6.测试端口
[root@node1 ~]# netstat -lnput |grep 2379
tcp6       0      0 :::2379                 :::*                    LISTEN      2161/etcd           
[root@node1 ~]# netstat -lnput |grep 4001
tcp6       0      0 :::4001                 :::*                    LISTEN      2161/etcd           
7.测试数据库功能
[root@node1 ~]# etcdctl set testdir/testkey0 1000
1000
[root@node1 ~]# etcdctl get testdir/testkey0 1000
1000
8.修改flannel配置文件
[root@node1 ~]# vim /etc/sysconfig/flanneld

9.向数据库中存入网段信息
[root@node1 ~]# etcdctl mk /atomic.io/network/config '{ "Network":"172.20.0.0/16" }'
[root@node1 ~]# etcdctl get /atomic.io/network/config
{ "Network":"172.20.0.0/16" }
10.启动并设置开机启动flanneld 
[root@node1 ~]# systemctl start flanneld
[root@node1 ~]# systemctl enable flanneld
11.查看ip地址
[root@node1 ~]# ip a s
...
3: flannel0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1472 qdisc pfifo_fast state UNKNOWN group default qlen 500
    link/none 
    inet 172.20.27.0/16 scope global flannel0
       valid_lft forever preferred_lft forever
    inet6 fe80::23c1:2c4f:5a44:5961/64 scope link flags 800 
       valid_lft forever preferred_lft forever
12.安装并启动docker
#执行安装docker的脚本
source docker.sh

#启动docker
systemctl start docker
13.启动docker服务后查看ip
systemctl start docker.service 
ifconfig 
14.从其他主机复制一份daemon.json文件
scp 
root@192.168.1.50:/etc/docker/daemon.json /etc/docker/
15.修改添加桥ip和路由字节1472-1500
[root@node1 ~]# vim /etc/docker/daemon.json 
[root@node1 ~]# cat /etc/docker/daemon.json 
{
 "insecure-registries":[
 "http://192.168.1.50" 
 ],
 "registry-mirrors": [
       "https://do.nark.eu.org",
       "https://dc.j8.work",
       "https://docker.m.daocloud.io",
       "https://dockerproxy.com",
       "https://docker.mirrors.ustc.edu.cn",
       "https://docker.nju.edu.cn"
 ],
 "hosts": [
 "tcp://0.0.0.0:2375",
 "unix:///var/run/docker.sock"
],
"bip": "172.20.27.1/24",
"mtu": 1472
}
16.修改docker配置文件
vim /usr/lib/systemd/system/docker.service
17.加载配置,重启docker服务
systemctl daemon-reload 
systemctl restart docker.service 
18.查看ip地址
ip a s
19.拉取一个镜像测试ip地址
docker pull centos
docker run -it centos:latest /bin/bash
2.从控
1.安装flannel
yum -y install flannel
2.配置flanner 配置flannel要访问的etcd数据库所在的位置
cat /etc/sysconfig/flanneld 
# Flanneld configuration options  
# etcd url location. Point this to the server 
where etcd runs
FLANNEL_ETCD_ENDPOINTS="http://192.168.71.10:2379"
# etcd config key. This is the configuration key 
that flannel queries
# For address range assignment
FLANNEL_ETCD_PREFIX="/atomic.io/network"
# Any additional options that you want to pass
#FLANNEL_OPTIONS=""
3.启动flannel
systemctl star flanneld
4.查看flannel分配的ip网段
cat /run/flannel/subnet.env 
FLANNEL_NETWORK=172.20.0.0/16
FLANNEL_SUBNET=172.20.59.1/24
FLANNEL_MTU=1472
FLANNEL_IPMASQ=false
5.安装docker
source docker.sh
6.将flannel分配⽹段写入到daemon.json
cat /etc/docker/daemon.json 
{
       "registry-mirrors": [
               "https://do.nark.eu.org",
               "https://dc.j8.work",
               "https://docker.m.daocloud.io",
               "https://dockerproxy.com",
               
"https://docker.mirrors.ustc.edu.cn",
               "https://docker.nju.edu.cn"
       ],
       "hosts": [
               "tcp://0.0.0.0:2375",
               "unix:///var/run/docker.sock"
       ],
        "insecure-registries":[
               "http://192.168.71.50:5000"
       ],
       "bip" : "172.20.99.1/24",
       "mtu" : 1472
}
[root@localhost ~]# 
7.重启docaker 如果不能重启,就修改一下远程管理
ystemctl restart docker.service
8.拉取⼀个centos镜像
docker pull centos
9.ping node1中容器的ip地址 
ping 172.20.27.2

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2083569.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深度强化学习算法(五)(附带MATLAB程序)

深度强化学习&#xff08;Deep Reinforcement Learning, DRL&#xff09;结合了深度学习和强化学习的优点&#xff0c;能够处理具有高维状态和动作空间的复杂任务。它的核心思想是利用深度神经网络来逼近强化学习中的策略函数和价值函数&#xff0c;从而提高学习能力和决策效率…

数据结构(6.4_2)——最短路径问题_BFS算法

最短路径问题 BFS求无权图的单源最短路径 原代码 改造visit函数后

list的使用及其相关知识点

目录 ◉list的底层逻辑 ◉关于list的新增功能 ▲splice功能 ▲remove函数 ▲unique函数 ▲merge函数 ▲sort函数 ▣迭代器类型 ▲reverse函数 作为数据容器之一的list和其他容器的使用上有很多相似的地方&#xff0c;比如都有大致相同的构造函数&#xff0c;大致相同的头插尾插…

CUDA编程之CUDA Sample-5_Domain_Specific-volumeFiltering(光线追踪)

volumeFiltering演示了使用 3D 纹理和 3D 表面写入进行 3D 体积过滤。它从磁盘加载一个 3D 体积&#xff0c;并使用光线步进和 3D 纹理进行显示。 以下是该示例的主要内容和功能&#xff1a; 主要功能 3D 体积加载: 从磁盘加载 3D 体积数据&#xff0c;通常为医学成像数据或体…

图像处理中的腐蚀与膨胀算法详解

引言 在图像处理领域&#xff0c;形态学操作&#xff08;Morphological Operations&#xff09;是处理二值图像的重要工具。腐蚀&#xff08;Erosion&#xff09;和膨胀&#xff08;Dilation&#xff09;是形态学操作的两种基本形式&#xff0c;它们常用于消除噪声、分割图像、…

深入解析C#中的锁机制:`lock(this)`、`lock(privateObj)`与`lock(staticObj)`的区别

前言 在C#的多线程编程中&#xff0c;lock关键字是确保线程安全的重要工具。它通过锁定特定的对象&#xff0c;防止多个线程同时访问同一块代码&#xff0c;从而避免数据竞争和资源冲突。然而&#xff0c;选择适当的锁对象对于实现高效的线程同步至关重要。本文将深入探讨使用…

三种tcp并发服务器实现程序

都需先进行tcp连接 1、多进程并发 2、多线程并发 3、IO多路复用并发 &#xff08;1&#xff09;select &#xff08;2&#xff09;epoll

在VB.net中,LINQ在数据统计方面的应用,举例说明

标题 在VB.net中&#xff0c;LINQ在数据统计方面的应用&#xff0c;举例说明 正文 在VB.NET中&#xff0c;LINQ&#xff08;Language Integrated Query&#xff09;在数据统计方面有着广泛的应用。LINQ允许开发者以声明性的方式对数据集合进行复杂的查询和统计操作&#xff0c;…

笔记:Echarts 饼图 图例legend 自定义 换行

配置后效果&#xff1a;&#x1f447; 配置&#xff1a; let option {legend: [{data: ["融云", "融AI", "融安全", "融平台"],show: true,right: "3%",bottom: "20%",left: "center",icon: "re…

乾元通渠道商中标大理市自然灾害应急能力提升项目

近日&#xff0c;乾元通渠道商中标云南省大理市自然灾害应急能力提升项目&#xff0c;乾元通作为设备厂家&#xff0c;为项目提供通信指挥类装备&#xff08;多链路聚合设备&#xff09;QYT-X1。 青岛乾元通数码科技有限公司作为国家应急产业企业&#xff0c;深耕于数据调度算法…

医疗数字化转型数据中台架构方案(一)

为推进医疗数字化转型&#xff0c;我们提出构建数据中台架构方案&#xff1a;通过集成医院内外多个数据源&#xff0c;利用大数据、人工智能等技术对数据进行清洗、整合、标准化处理&#xff0c;形成高质量的数据资产&#xff1b;再基于云原生技术构建湖仓一体化大数据平台&…

【Python数据结构与算法】栈----合法出栈序列

题目&#xff1a;合法出栈序列 描述 给定一个由大小写字母和数字构成的&#xff0c;没有重复字符的长度不超过62的字符串x&#xff0c;现在要将该字符串的字符依次压入栈中&#xff0c;然后再全部弹出。 要求左边的字符一定比右边的字符先入栈&#xff0c;出栈顺序无要求。 …

守护夏日清凉:EasyCVR+AI视频智能管理方案为水上乐园安全保驾护航

随着夏季的来临&#xff0c;水上乐园成为了人们避暑消夏、亲子互动的理想去处。然而&#xff0c;随着游客量的激增&#xff0c;如何确保水上乐园的安全与秩序&#xff0c;提升游客体验&#xff0c;成为了管理者亟待解决的问题。为此&#xff0c;引入一套高效、智能的视频监控方…

Node.js原生开发脚手架工具(下)

前言 在现代软件开发中&#xff0c;脚手架工具成为提高开发效率和一致性的关键利器。使用Node.js原生开发自己的脚手架工具不仅能帮助自动化常见任务&#xff0c;还能根据具体需求进行高度定制。Node.js的异步非阻塞特性和丰富的模块系统使其成为构建这种工具的理想选择。本篇文…

使用 pnpm workspace 和 standalone 模式构建 Next.js 的 Docker 镜像

引言 本文将探讨如何利用 pnpm workspace 和 standalone 模式来构建 Next.js 应用程序的轻量级 Docker 镜像。这种方法通过仅在 node_modules 目录中包含必要的文件&#xff0c;显著减少了最终 Docker 镜像的大小。 Standalone 模式简介 通常情况下&#xff0c;所有在 depe…

MyPrint打印设计器(四)vue3 函数式调用组件

vue3 函数式调用组件 vue中&#xff0c;通常情况下调用一个组件需要以下步骤 导入组件在template引入组件&#xff0c;并且设置ref属性在js模块定义对应的ref属性通过ref对象调用对应的方法 如果这个组件在template是不必要的&#xff0c;那么可以通过函数式调用组件&#xff…

Windows 10/11 系统优化工具 Optimizer 16.7

Optimizer 功能特色 全语言支持&#xff08;提供19种语言&#xff09; 提高系统和网络性能 禁用不必要的窗口服务 禁用 Windows 遥测、小娜等 禁用 Office 遥测&#xff08;仅适用于 Office 2016&#xff09; 禁用 Windows 10 自动更新 一次快速下载有用的应用程序 卸载 UWP 应…

ARMxy工业控制器搭载 Mini PCIe加密安全芯片工业控制拓展之旅

在当今高度数字化和智能化的工业领域&#xff0c;数据采集的准确性、实时性和全面性对于优化生产流程、提高产品质量以及保障生产安全至关重要。ARM 工业控制器以其高效能、低功耗和出色的稳定性&#xff0c;成为了工业自动化领域的重要组成部分。而其中的 Mini PCIe 接口更是为…

JVM内存结构、内存参数、调优原理

文章目录 引言I JVM基础知识1.1 JVM内存区域1.2 JVM 堆内存布局1.3 JVM 内存参数II 调整JVM的默认堆内存配置2.1 java命令启动jar包时配置JVM 的内存参数2.2 基于Tomcat服务器部署的java应用,配置JVM 的内存参数III JVM调优基本概念: 应用程序的响应时间(RT)和吞吐量(QPS)…

基于springboot+vue+uniapp的使命召唤游戏助手小程序

开发语言&#xff1a;Java框架&#xff1a;springbootuniappJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#…