08-Docker-网络管理

news2024/11/27 7:37:43

Docker 在网络管理这块提供了多种的网络选择方式,他们分别是桥接网络主机网络覆盖网络MACLAN 网络无桥接网络自定义网络

1-无桥接网络(None Network)

当使用无桥接网络时,容器不会分配 IP 地址,也不会连接到主机网络。这对于特殊应用或需要完全手动配置网络设置的情况有用。在这个容器下,除了lo本地环回网络,不会有其他的网卡,一些对安全性比较高并且不需要联网的应用可以使用none network网络。
一般来说使用none network的情况并不多,特殊应用或需要完全手动配置网络设置的情况有用。

2-主机网络(Host Network)

使用主机网络时,容器与主机共享网络命名空间,它们使用主机的网络堆栈,不需要 NAT(网络地址转换)。这可以提高容器访问网络资源的性能,但可能会引入一些安全风险,因为容器共享主机的网络栈。
使用host network需要考虑端口冲突问题,有些已经host上已经使用的端口,就无法再使用了。
image.png

3-桥接网络(Bridge Network)

桥接网络是 Docker 中最常用的网络类型。在桥接网络中,每个容器分配一个唯一的 IP 地址,容器可以相互通信,也可以通过主机进行外部网络通信。这是默认的网络类型。
我们通过如下命令可以看到桥接网络的相关设置:

docker network inspect bridge

image.png
1698854671413.png
可以看到桥接网络的子网是172.17.0.0/16,容器分配的 IP 有172.17.0.3172.17.0.4容器之间可以相互通信。
通过brctl,可以管理 Linux 的桥接设备,centos中下载方式与使用方式如下:

#下载方式
sudo yum install bridge-utils  # 对于 CentOS 6
sudo dnf install bridge-utils  # 对于 CentOS 8 或 Fedora
#显示桥接设备
brctl show

image.png
可以看到容器中网卡的一端是挂载在桥接网卡docker0上的,通过这种形式实现网络链接的目的。

4-用户定义网络(Custom Network)

我们可以根据业务需求,自己定义相关的网络,docker提供了三种用户定义网络驱动,它们分别是:bridgeoverlaymacvlan。其中overlaymacvlan用于创建跨主机的网络。
我们可以使用如下命令来创建一个自定义网络,其子网为 192.168.0.0/24, 网关为192.168.0.1,容器网络名为net_2

docker network create --subnet 192.168.0.0/24 --gateway 192.168.0.1 --driver bridge net_2

继而使用net_2网络创建两个新的容器,创建容器命令如下

docker run -it --network=net_2 --name=ub1 ubuntu /bin/bash
docker run -it --network=net_2 --name=ub2 ubuntu /bin/bash

在新的容器中安装网络查看及ping命令,可以获取如下网络信息

apt-get install -y net-tools
apt-get install -y iputils-ping

image.png
image.png
彼此之间可以ping通,实现自定义网络的通信。image.png
使用docker ps,可以看到使用系统自定义的桥接网络容器700b,进入容器后发现他使用的是172.17.0.0/12网段。
image.png
若想使得桥接网络与自定义网络容器之间可以通信,除了关注防火墙路由转发之外,还需要使用如下命令:

docker network connect net_2 700b

此时再进入容器,会发现容器中多了一个网卡,并且可以与不同网段之间容器进行通信。
image.png

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

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

相关文章

【C++】set和multiset

文章目录 关联式容器键值对一、set介绍二、set的使用multiset 关联式容器 STL中的部分容器,比如:vector、list、deque、forward_list(C11)等,这些容器统称为序列式容器,因为其底层为线性序列的数据结构,里面存储的是元…

基于nodejs+vue高校实验室预约管理系统

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性:…

Android原生分享与指定app分享

什么是 Android 系统的原生分享呢,如下图所示 创建一个 Intent ,指定其 Action 为 Intent.ACTION_SEND,这表示要创建一个发送指定内容的行动。 Intent sendIntent new Intent(); sendIntent.setAction(Intent.ACTION_SEND); 指定需要发送的…

量化交易Copula建模应对市场低迷

一、简介 传统上,我们依靠相关矩阵来理解资产间的动态。然而,正如过去的市场崩盘所表明的那样,当风暴袭来时,许多模型都会陷入混乱。突然之间,相关性似乎趋于一致,而多样化这一经常被吹捧的风险管理口号似乎并没有提供什么庇护。 这种出乎意料的同步,即资产在经济低迷时…

C++ Qt 学习(二):常用控件使用与界面布局

1. Qt 布局详解 ui 设计器设计界面很方便,为什么还要手写代码? 更好的控制布局更好的设置 qss代码复用 完全不会写 Qt 布局,很麻烦,怎么学会手写布局? 看 Qt 自己怎么写改良 Qt 的布局写法 1.1 水平布局 #include …

Android Studio的笔记--SerialPort串口通讯学习和使用

SerialPort串口通讯学习和使用 SerialPortandroid-serialport-api源码下载 Android-SerialPort-API源码下载readme版本 Android-SerialPort-Tool源码下载 Android-Serialport源码下载使用方法readme android中使用串口通信使用android-serialport-api方式第1种 链接第2种 导入S…

4.6 内部类

思维导图: 4.6 内部类 在Java中,可以在一个类的内部定义另一个类,这种结构的类被称作内部类,而包含它的类被称为外部类。根据内部类的位置、修饰符和定义方式,内部类可以分为以下四种: 成员内部类局部内…

Labview2018安装教程(超级详细)

网盘资源见文末 一 .简介 LabVIEW 2017是National Instruments(NI)开发的一款图形化编程环境。LabVIEW是一种流程导向的编程语言,它使用图形符号表示程序的逻辑和数据流,并且以数据流的方式执行程序,使得用户可以通过…

解决pycharm中,远程服务器上文件找不到的问题

一、问题描述 pycharm中,当我们连接到远程服务器上时。编译器中出现报错问题: cant open file /tmp/OV2IRamaar/test.py: [Errno 2] No such file or directory 第二节是原理解释,第三节是解决方法。 二、原理解释 实际上这是由于我们没有设置…

vue el-table-column 修改一整列的背景颜色

目录 修改表头以及一整列数据的背景颜色,效果如下: 总结 修改表头以及一整列数据的背景颜色,效果如下: 修改表头背景颜色:在el-table绑定header-cell-style 修改一整列的数据背景颜色:在el-table绑定:cel…

openGauss新功能:极致RTO回放支持备机读

极致RTO回放是openGauss提供的一种加速备机日志回放的高可用功能&#xff0c;能够做到支撑数据库主机重启后快速恢复&#xff0c;RTO < 10s。极致RTO功能是通过对物理日志回放建立多级流水线&#xff0c;将回放的并发度提高到页面级&#xff0c;来提升日志回放速度的。openG…

centos关闭Java进程的脚本

centos关闭Java进程的脚本&#xff0c;有时候服务就是个jar包&#xff0c;关闭程序又要找到进程ID&#xff0c;在kill掉&#xff0c;麻烦&#xff0c;这里就写了个脚本 小白教程&#xff0c;一看就会&#xff0c;一做就成。 1.脚本如下 #!/bin/bash ps -ef | grep java | gre…

执行npm install时老是安装不成功node-sass的原因和解决方案

相信你安装前端项目所需要的依赖包&#xff08;npm install 或 yarn install&#xff09;时&#xff0c;有可能会出现如下报错&#xff1a; D:\code\**project > yarn install ... [4/4] Building fresh packages... [-/6] ⠁ waiting... [-/6] ⠂ waiting... [-/6] ⠂ wai…

vue+element ui中的el-button自定义icon图标

实现 button的icon属性自定义一个图标名称&#xff0c;这个自定义的图标名称会默认添加到button下i标签的class上&#xff0c;我们只需要设置i标签的样式就可以了 ##3. 按钮上使用自定义的icon 完整代码 <div class"lookBtn"><el-button icon"el-icon-…

五种删除办公文件空白的方法

方法一:Shift键删除空白页 将光标定位在文档末尾,然后按住「Shift」键不松,鼠标单击选中空白页面,然后按下「Backspace或Delete」键即可删除空白页。 方法二:分页符删除空白页 有一些空白页,即便是使用了Shift键删除法也无法删除,那么这个时候就要看看是不是插入了分页…

vi vim 末尾编辑按GA 在最后一行下方新增一行编辑按Go

vim 快速跳到文件末尾 在最后一行下方新增一行 移到末尾,并且进入文本录入模式 GA (大写G大写A) 在一般模式(刚进入的模式,esc模式) GA 或 Shift ga 先 G 或 shiftg 到最后一行 然后 A 或 shifta 到本行末尾 并且进入文本录入模式 在最后一行下方新增一行 (光标换行,文字不…

06 # 手写 map 方法

map 的使用 map 自带循环功能&#xff0c;对数据中的元素进行加工&#xff0c;得到一个加工后的新数据 ele&#xff1a;表示数组中的每一个元素index&#xff1a;表示数据中元素的索引array&#xff1a;表示数组 <script>var arr [1, 3, 5, 7, 9];var result arr.ma…

使用Dockerfile生成docker自定义镜像

Dockerfile常用指令 • FROM 构建镜像基于哪个镜像 • MAINTAINER 镜像维护者姓名或邮箱地址 • RUN 构建镜像时运行的指令,执行一条RUN镜像就会叠加一层&#xff0c;因此RUN尽可能一条写完 • ADD 拷贝文件或目录到容器中&#xff0c;如果是URL或压缩包便会自动下载或自动解压…

从0开始搭建一个前端项目的架子

目录 1.概述 2.项目搭建 3.elementUI 4.CSS预处理器 5.重置CSS 6.图标库 7.axios和路由 7.1.axios 7.2.路由 7.3.路由懒加载和异步组件 1.概述 在古早时代&#xff0c;只需要会html、css、js、ajax就能开发一个前端项目&#xff0c;这些技术的上手成本也不高&#x…

RK3588平台开发系列讲解(项目篇)基于yolov5的物体识别

平台内核版本安卓版本RK3588Linux 5.10Android 12文章目录 一、实验环境二、源码&工具三、环境搭建3.1、安装 Miniconda3.2、创建 RKNN 虚拟环境3.3、安装 RKNN-ToolkitLite 2 软件包3.4、安装 opencv四、实验沉淀、分享、成长,让自己和他人都能有所收获!😄 📢 本篇将…