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

【Docker基础-网络】--查阅笔记4

目录

  • Docker 网络
    • 网络类型
      • none 网络
      • host 网络
      • bridge 网络
      • 自定义网络
    • 容器间通信
      • IP 通信
      • Docker DNS Server
      • joined 容器
    • 容器与外部通信
      • 容器访问外部
      • 外部访问容器

Docker 网络

  • 学习Docker提供的几种原生网络
  • 如何创建自定义网络
  • 容器间通信,容器于外界交互

Docker 安装时会自动在 host 上创建三个网络,查看:

docker network ls
# bridge host none

网络类型

none 网络

none网络就是什么都没有的网络。挂在这个网络下的容器除了lo,没有其他任何网卡。容器创建时,可以通过 --network=none指定使用none网络
使用场景:封闭隔离,一些对安全性要求高并且不需要联网的应用可以使用,比如某个容器的唯一用途是生成随机密码,就可以放到none网络中避免密码被窃取。

host 网络

连接到 host 网络的容器共享 Docker host 的网络,容器的网络配置与 host 完全一样。通过 --network=host 指定使用 host 网络。

docker run -it --network=host httpdip l # 查看
  • 直接使用Docker host的网络最大的好处就是性能,如果容器对网络传输效率有较高要求,则可以选择host网络。
  • 这样就牺牲一些灵活性,比如要考虑端口冲突问题,Docker host上已经使用的端口就不能再用了。
  • Docker host 的另一个用途是让容器可以直接配置host网路,比如某些跨host的网络解决方案,其本身也是以容器方式运行的,这些方案需要对网络进行配置,比如管理iptables

bridge 网络

Docker安装时会创建一个命名为 docker0 的 Linux bridge。如果不指定 --network,创建的容器默认都会挂到docker0上。

brctl showip a

创建容器后,会有一个新的网络接口(比如veth28)被挂到 docker0 上,这个接口就是新容器的虚拟网卡。
容器本身会有一个网卡(比如eth0@if34)。
实际上 eth0@if34 和 veth28 是一对 veth pair。veth pair是一种成对出现的特殊网络设备,可以把它们想象成由一根虚拟网线连接起来的一对网卡,网卡的一头(eth0@if34)在容器中,另一头(veth28)挂在网桥 docker0 上,其效果就是将 eth0@if34 也挂在了 docker0 上。

自定义网络

除了以上自动创建的网络,用户也可以根据业务需要创建user-defined网络。
Docker 提供三种 user-defined 网络驱动:bridge、overlay 和 macvlan。

通过 bridge 驱动创建类似前面默认的bridge网络:

docker network create --driver bridge my_net
docker network insepect my_net
# 自己指定网段: 在创建网段时指定 --subnet和 --gateway参数
docker network create --driver bridge --subnet 172.22.16.0/24 --gateway 172.22.16.1 my_net2

容器要使用新的网络,需要在启动时通过 --network指定:

docker run -it --network=my_net2 容器ID/Name

容器的IP都是 docker 自动从 subnet 中分配,指定静态 IP: 通过 --ip 指定(只有使用 --subnet 创建的网络才能指定静态 IP)。

docker run -it --network=my_net2 --ip 172.22.16.8 容器ID/Name

如果两个容器都挂在my_net2上,可以互通。所以,同一网络中的容器、网关之间都是可以通信的。

my_net2与默认bridge网络能通信吗?
两个网络属于不同的网桥,是不能通信的。
host上对每个网络都有一条路由,同时操作系统上打开了ip forwarding, host就成了一个路由器,挂接在不同网桥上的网络就能够相互通信。

# 查看 host 上的路由表
ip r 
# 查看 ip forwarding:
sysctl net.ipv4.ip_forward  # net.ipv4.ip_forward = 1 表示已经启动
# 查看 iptables
iptables-save
# -A DOCKER-ISOLATION -i br-5d863e9f78b6-o docker0-j DROP -A DOCKER-ISOLATION -i docker0-o br-5d863e9f78b6-j DROPiptables 
# DROP掉了网桥docker0与br-5d863e9f78b6之间双向的流量# 为容器添加一块net_my2的网卡,就能互通。这个可以通过docker network connect命令实现
docker network connect my_net2 容器ID

容器间通信

IP 通信

从前面的例子可以得出这样一个结论:两个容器要能通信,必须要有属于同一个网络的网卡。
满足这个条件后,容器就可以通过 IP 交互了。具体做法是在容器创建时通过 --network 指定相应的网络,或者通过 docker network connect将现有容器加入到指定网络。

Docker DNS Server

通过 IP 访问容器虽然满足了通信的需求,但还是不够灵活。因为在部署应用之前可能无法确定 IP,部署之后再指定要访问的 IP 会比较麻烦。这个问题,可以通过 docker 自带的 DNS 服务解决。

docker daemon 实现了一个内嵌的 DNS server,使容器可以直接通过“容器名”通信。只要在启动时用 --name 为容器命名就可以了。
使用 docker DNS 有个限制:只能在 user-defined 网络中使用。默认的 bridge 网络是无法使用 DNS 的。

docker run -it --network=my_net2 --name=bbox1 busybox 
docker run -it --network=my_net2 --name=bbox2 busyboxping -c 3 bbox1

joined 容器

joined 容器是另一种实现容器间通信的方式。
joined 容器非常特别,它可以使两个或多个容器共享一个网络栈,共享网卡和配置信息,joined 容器之间可以通过 127.0.0.1 直接通信。
使用场景:

  • 不同容器中的程序希望通过 loopback 高效快速地通信,比如 Web Server 与 App Server。
  • 希望监控其他容器的网络流量,比如运行在独立容器中的网络监控程序。
# 创建web1容器
docker run -d -it --name=web1 httpd
# 创建busybox容器并通过 --network=container:web1指定joined容器为web1
docker run -it --network=container:web1 busybox

busybox 和 web1 的网卡 mac 地址与 IP 完全一样,它们共享了相同的网络栈。busybox 可以直接用 127.0.0.1 访问 web1 的 http 服务。

容器与外部通信

容器访问外部

如果 docker host 可以访问外网,容器默认就能访问外网(这里外网指的是容器网络以外的网络环境,并非特指Internet)。
通过NAT, docker实现了容器对外网的访问。

# host测试
ping -c 3 www.baidu.com
#  登录容器测试
docker run -it busybox
ping -c 3 www.baidu.com

busybox 位于 docker0 这个私有bridge网络中(172.17.0.0/16)​,当 busybox 从容器向外 ping 时,数据包是怎样到达bing.com的呢?
这里的关键就是NAT。docker host上的iptables规则:

iptables -t nat -S
# -A POSTROUTING -s 172.17.0.0/16 ! -o docker0-j MASQUERADE
# 如果网桥docker0收到来自172.17.0.0/16网段的外出包,把它交给MASQUERADE处理。而MASQUERADE的处理方式是将包的源地址替换成host的地址发送出去,即做了一次网络地址转换(NAT)​。

网络地址转换(NAT):是一种在IP网络中用于重用地址空间并隐藏内部网络结构的技术。
解决IPv4地址短缺问题,同时提高内网安全性,通过单一或少量的公共IP地址代表整个内部网络与外部通信。
内到外:当内部设备访问外部网络时,NAT设备(通常是路由器或防火墙)将源IP地址从私有地址转换为公有地址。
外到内:响应数据包到达NAT设备时,根据转换表将目标地址从公有地址转换回相应的私有地址。
端口地址转换(PAT):最常用的NAT形式,多个内部设备可以共享一个公有IP地址,通过不同的端口号区分不同的连接。
类型:
静态NAT:一对一映射,每个内部IP地址永久映射到一个特定的外部IP地址,适用于需要直接从外部访问的服务器。
动态NAT:内部私有地址池与外部公有地址池之间进行一对一临时映射,每次连接时分配,连接结束后释放。
端口地址转换(PAT):一对多映射,多个内部IP地址通过单一或少量公有IP地址的不同端口对外通信,是最节省IP地址的方式。

通过tcpdump查看地址是如何转换的。先查看docker host的路由表:

# 查看 default 默认路由通过enp0s3发出去,所以我们要同时监控enp0s3和docker0上的icmp(ping)数据包
ip rtcpdump -i docker0 -n icmp

docker0收到busybox的ping包,源地址为容器IP 172.17.0.2,这没问题,交给MASQUERADE处理。这时,在enp0s3上我们看到了变化:

# ping包的源地址变成了enp0s3的IP 10.0.2.15
tcpdump -i enp0s3 -n icmp

这就是iptable NAT规则处理的结果,从而保证数据包能够到达外网:

  1. busybox 发送ping包:172.17.0.2 > www.baidu.com。
  2. docker0 收到包,发现是发送到外网的,交给NAT处理。
  3. NAT将源地址换成 enp0s3 的IP:10.0.2.15 > www.baidu.com。
  4. ping包从 enp0s3 发送出去,到达 www.baidu.com。

外部访问容器

外网访问容器:通过端口映射
docker可将容器对外提供服务的端口映射到host的某个端口,外网通过该端口访问容器。容器启动时通过-p参数映射端口:

docker run -d -p 80 httpd

容器启动后,可通过docker ps或者docker port查看到host映射的端口。在上面的例子中,httpd容器的80端口被映射到host 32773上,这样就可以通过:<32773>访问容器的Web服务了

除了映射动态端口,也可在 -p中指定映射到host某个特定端口,例如可将80端口映射到host的8080端口

docker run -d -p 8080:80 httpd
curl hostId:8080

每一个映射的端口,host都会启动一个docker-proxy进程来处理访问容器的流量,host 查看:

ps -ef | grep docker-proxy

过程是这样的:

  1. docker-proxy监听host的32773端口
  2. 当curl访问10.0.2.15:32773时,docker-proxy转发给容器172.17.0.2:80
  3. httpd容器响应请求并返回结果

相关文章:

【Docker基础-网络】--查阅笔记4

目录 Docker 网络网络类型none 网络host 网络bridge 网络自定义网络 容器间通信IP 通信Docker DNS Serverjoined 容器 容器与外部通信容器访问外部外部访问容器 Docker 网络 学习Docker提供的几种原生网络如何创建自定义网络容器间通信&#xff0c;容器于外界交互 Docker 安装…...

FacialExpressionDetection的conda虚拟环境搭建Window

安装conda的URL&#xff1a;Index of /anaconda/archive/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 清华源下载conda版本&#xff0c;哪个最新用哪个&#xff0c;这里下载Anaconda3-5.3.1-Windows-x86_64.exe版本 安装conda虚拟环境 conda create --name py1…...

IPD推进中关键角色与岗位(七)LTDT确保技术开发的实用性与可靠性,满足市场需求

IPD 体系作为一种先进的研发管理模式&#xff0c;其核心在于打破传统职能部门的壁垒&#xff0c;通过跨部门团队的协同合作&#xff0c;实现产品开发的全流程优化。在 IPD 体系的架构中&#xff0c;存在着多个关键团队&#xff0c;它们各司其职又紧密配合&#xff0c;共同推动产…...

c++自学笔记——字符串与指针

字符串与指针 1. 字符串基础 字符串的定义&#xff1a;字符的序列&#xff0c;通常用来表示文本。 字符串字面量&#xff08;String Literal&#xff09;是在程序中直接用双引号括起来的文本序列。字符串字面量的类型是 const char*&#xff0c;即指向字符常量的指针。字符串…...

Jmeter分布式测试启动

代理客户端配置 打开jmeter.properties文件&#xff0c;取消注释并设置端口&#xff08;如server_port1099&#xff09;&#xff0c; 并添加server.rmi.ssl.disabletrue禁用SSL加密。 &#xff08;Linux系统&#xff09;修改jmeter-server文件中的RMI_HOST_DEF为代理机实际IP。…...

.DS_Store文件泄露、.git目录泄露、.svn目录泄露漏洞利用工具

&#x1f409;工具介绍 一款图形化的 .DS_Store文件泄露、.git目录泄露、.svn目录泄露漏洞利用工具。 &#x1f3af;使用 本工具使用Python3 PyQt5开发&#xff0c;在开始使用前&#xff0c;请确保已经安装了相关模块&#xff1a; pip3 install -r requirements.txt -i ht…...

Coze+大模型智能体环境搭建

1 前言 Coze作为字节跳动推出的新一代AI Bot开发平台&#xff0c;为开发者提供了快速构建、部署智能对话代理的一站式解决方案。Coze平台通过提供可视化工作流编排、知识库集成、插件扩展等核心功能&#xff0c;结合一些大模型&#xff0c;例如豆包、deepseek、通义千问等大模型…...

计算机视觉与深度学习 | 视觉SLAM学习思路总结与视觉SLAM发展历程(1986年至2025年)

视觉SLAM(Simultaneous Localization and Mapping,同时定位与建图)是计算机视觉和机器人领域的重要研究方向,涉及数学、几何、优化、传感器融合等多学科知识。以下是学习视觉SLAM的系统化思路总结,适合从入门到进阶的学习路径:视觉SLAM学习思路总结 一、基础准备 数学基…...

Ansible(8)——循环与条件任务

目录 一、循环迭代任务&#xff1a; 1、简单循环&#xff1a; 2、循环字典列表&#xff1a; 3、Ansible 2.5 之前的循环关键字&#xff1a; 4、在循环中使用 register 变量&#xff1a; 二、条件任务&#xff1a; 1、使用条件句的常见场景&#xff1a; 2、条件任务语法…...

搭建Trae+Vue3的AI开发环境

从2024年2025年&#xff0c;不断的有各种AI工具会在自媒体中火起来&#xff0c;号称各种效率王炸&#xff0c;而在AI是否会替代打工人的话题中&#xff0c;程序员又首当其冲。 作为一个后端开发&#xff0c;这篇文章基于Trae工具&#xff0c;来创建和运行一个简单的Vue前端应用…...

【免费公测】可遇AI直播/无人直播/矩阵直播/AI场控

前言 经过了一个多月的内测打磨&#xff0c;实现了非常稳定的无人直播效果&#xff0c;AI直播语音及其真实&#xff0c;软件交互方便&#xff0c;可以快速的构建AI直播间。 免费公测&#xff0c;内置无限激活卡密一张&#xff0c;打开即用。 亮点 高仿真语音模型&#xff0c…...

大数据Hadoop(MapReduce)

MapReduce概述 MapReduce定义 MapReduce是一个分布式运算程序的编程框架&#xff0c;是用户开发“基于Hadoop的数据分析应用”的核心框架。 MapReduce核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序&#xff0c;并发运行在一个Hadoop集群上…...

使用apache-jmeter时,控制台打不开应用的解决方法

运行jmeter.bat的时候&#xff0c;提示&#xff1a; findstr 不是内部或外部命令&#xff0c;也不是可运行的程序 或批处理文件。 Not able to find Java executable or version. Please check your Java installation. errorlevel2这个错误信息表明系统无法识别 findstr 命令…...

leetcode 74. 搜索二维矩阵

class Solution {public boolean searchMatrix(int[][] matrix, int target) {int m matrix.length;int n matrix[0].length;int l 0;int r n * m - 1; // 记得减一while (l < r) {int mid (l r) / 2;if(matrix[mid / n][mid % n] > target) {r mid - 1;} else if…...

函数式编程在 Java:Function、BiFunction、UnaryOperator 你真的会用?

大家好&#xff0c;我是你们的Java技术博主&#xff01;今天我们要深入探讨Java函数式编程中的几个核心接口&#xff1a;Function、BiFunction和UnaryOperator。很多同学虽然知道它们的存在&#xff0c;但真正用起来却总是不得要领。这篇文章将带你彻底掌握它们&#xff01;&am…...

SpringMVC基础一(SpringMVC运行原理)

先了解MVC&#xff0c;在JavaWeb基础五中。 回忆servlet&#xff0c;在javaweb基础二中。 创建一个web项目&#xff1a; 1、新建maven项目&#xff0c;导入依赖。&#xff08;junit、springmvc、spring-webmvc、servlet-api、jsp-api、jstl&#xff09; <groupId>org…...

libva之ffavdemo分析

ffavdemo 代码库实现了一个基于FFmpeg和VAAPI的硬件加速视频解码与渲染框架&#xff0c;主要用于演示视频解码与渲染的完整硬件加速流程。支持多种渲染后端&#xff08;X11、DRM、EGL&#xff09;&#xff0c;适应不同显示环境。包含视频处理过滤器&#xff0c;可进行格式转换和…...

从零开始写android 的智能指针

Android中定义了两种智能指针类型&#xff0c;一种是强指针sp&#xff08;strong pointer&#xff09;&#xff0c;源码中的位置在system/core/include/utils/StrongPointer.h。另外一种是弱指针&#xff08;weak pointer&#xff09;。其实称之为强引用和弱引用更合适一些。强…...

Spark-SQL 之 Window

window 函数实例 select concat(substr(p_dt,1,4),substr(p_dt,6,2)...

Python设计模式-单例模式

一、单例模式核心思想 单例模式&#xff08;Singleton Pattern&#xff09;是一种创建型设计模式&#xff0c;它确保一个类只有一个实例&#xff0c;并提供一个全局访问点。该模式主要解决以下问题&#xff1a; 资源控制&#xff08;如数据库连接池&#xff09;配置信息全局一…...

富文本编辑器的内容导出html,并保留图片

富文本编辑器的上传的图片默认转为base64&#xff0c;但是如果需要保存到数据库&#xff0c;base64的数据就太大了&#xff0c;所以一般都会长传到文件服务器&#xff0c;然会返回图片url。 但是当我们需要把富文本编辑器的内容导出为html时&#xff0c;因为图片时url,当浏览器…...

jQueryHTML与插件

1.jQuery 事件机制 1.1 注册事件 bind()、on()方法向被选元素添加一个或多个事件处理程序&#xff0c;以及当事件发生时运行的函数 $("p").on({"click": function () {alert("点击了")},"mouseenter": function () {…...

KTH5772 系列游戏手柄摇杆专用3D 霍尔位置传感器

产品概述 KTH5772是一款专为游戏手柄上的摇杆应用而设计的3D霍尔磁感应芯片&#xff0c;主要面向对线性度、回报率、灵敏度、功耗要求严格的摇杆应用。KTH5772基于3D霍尔技术&#xff0c;内部分别集成了X轴、Y轴和Z轴三个独立的霍尔元件&#xff0c;能够通过测量和处理磁通密度…...

C++进阶——C++11_右值引用和移动语义_可变参数模板_类的新功能

目录 1、右值引用和移动语义 1.1 左值和右值 1.2 左值引用和右值引用 1.3 引用延长生命周期 1.4 左值和右值的参数匹配 1.5 右值引用和移动语义的使用场景 1.5.1 左值引用主要使用场景 1.5.2 移动构造和移动赋值 1.5.3 右值引用和移动语义解决传值返回问题 1.5.4 右值…...

(五)深入了解AVFoundation-播放:多音轨、字幕、倍速播放与横竖屏切换

引言 在之前的博客中&#xff0c;我们已经实现了一个相对完整的播放器&#xff0c;具备了基本功能&#xff0c;如播放、暂停、播放进度显示和拖拽快进等。这为我们提供了一个坚实的基础。接下来&#xff0c;我们将进一步扩展播放器的功能&#xff0c;使其更具灵活性和实用性&a…...

matplotlib.pyplot常见图形及组合基础用法文档

matplotlib.pyplot 常见图形及组合基础用法文档 一、引言 matplotlib.pyplot 是 Python 中用于数据可视化的强大库&#xff0c;提供了丰富的绘图函数&#xff0c;可绘制折线图、散点图、柱状图等多种类型的图形。同时&#xff0c;还能将不同类型的图形组合在一起&#xff0c;…...

mysql的基础语句和外键查询及其语句

思路&#xff1a;双指针思路可以吗&#xff0c;我就直接找G,如果后一个是1就cnt&#xff0c;如果不是数字&#xff0c;用一个指针i指向G&#xff0c;另一个指针j移动&#xff0c;当不是G时停止&#xff0c;统计G的个数&#xff0c;如果是奇数个同时G的下一个是1&#xff0c;cnt…...

如何使用 DeepSeek 帮助自己的工作?

1. 信息检索 信息检索是获取特定信息的过程&#xff0c;尤其是在大量数据或文本中查找相关内容。这个过程应用广泛&#xff0c;从网页搜索引擎到数据库查询&#xff0c;再到企业内部信息系统。在使用 DeepSeek 或其它类似工具进行信息检索时&#xff0c;可以考虑以下几个重要方…...

为 Doub 打造吸引 CMO 的 SEO 报告

在数字营销中&#xff0c;SEO 报告不仅是展示工作成果的工具&#xff0c;更是向高层管理者&#xff08;如 CMO&#xff09;证明 SEO 价值的关键。对于 Doub 这样一家提供精密模切解决方案的网站&#xff08;基于 WordPress 和 WooCommerce&#xff09;&#xff0c;撰写一份吸引…...

数据可视化 —— 折线图应用(大全)

一、导入需要的库 # Matplotlib 是 Python 最常用的绘图库&#xff0c;pyplot 提供了类似 MATLAB 的绘图接口 import matplotlib.pyplot as plt import numpy as np import pandas as pd 二、常用的库函数 plt.plot(x轴,y轴)&#xff1a;plot()是画折线图的函数。 plt.xlabe…...

配置mac mini M4 的一些软件

最近更换了 mac mini M4 &#xff0c;想要重新下载配置软件 &#xff0c;记录一下。 Homebrew是什么&#xff1f; homebrew是一款Mac OS平台下的软件包管理工具&#xff0c;拥有安装、卸载、更新、查看、搜索等功能。通过简单的指令可以实现包管理&#xff0c;而不用关心各种…...

八邻域轮廓跟踪算法_传感器技术

在科学技术日新月异的今天&#xff0c;人们对机器设备的智能性、自主性要求也越来越高&#xff0c;希望其完全替代人的角色&#xff0c;把人们从繁重、危险的工作任务中解脱出来&#xff0c;而能否像人一样具有感知周围环境的能力已成为设备实现智能化自主化的关键。 广义的“…...

python实战:如何正确安装 ffmpeg(window、linux、mac都通用)

直接使用 Conda 安装 FFmpeg,而无需手动下载或配置环境变量。Conda 会自动管理依赖项,并将 FFmpeg 添加到你的环境路径中。 方法 1:使用 Conda 安装 FFmpeg 在 Anaconda Prompt(或终端)中运行: conda install ffmpeg -c conda-forge-c conda-forge 表示从 conda-forge…...

网络机顶盒常见问题全解析:从安装到故障排除

WiFi连接问题 机顶盒无法连接WiFi&#xff0c;先检查路由器信号强度。若信号弱&#xff0c;可将机顶盒移近路由器&#xff0c;或调整路由器天线方向。也可重启机顶盒与路由器&#xff0c;若仍不行&#xff0c;进入机顶盒设置&#xff0c;重置网络设置。若支持5GHz频段&#xf…...

使用stm32cubeide stm32f407 lan8720a freertos lwip 实现tcp客户端、服务端及网络数据转串口数据过程详解

1前言 项目需要使用MCU实现网络功能&#xff0c;后续确定方案stm32f407 外接lan8720a实现硬件平台搭建&#xff0c;针对lan8720a也是用的比较多的phy&#xff0c;网上比较多的开发板&#xff0c;硬件上都是选用了这个phy&#xff0c;项目周期比较短&#xff0c;选用了这个常用…...

GAT-GRAPH ATTENTION NETWORKS(论文笔记)

CCF等级&#xff1a;A 发布时间&#xff1a;2018年 代码位置 25年4月21日交 目录 一、简介 二、原理 1.注意力系数 2.归一化 3.特征组合与非线性变换 4.多头注意力 4.1特征拼接操作 4.2平均池化操作 三、实验性能 四、结论和未来工作 一、简介 图注意力网络&…...

【蓝桥杯】贪心算法

1. 区间调度 1.1. 题目 给定个区间,每个区间由开始时间start和结束时间end表示。请选择最多的互不重叠的区间,返回可以选择的区间的最大数量。 输入格式: 第一行包含一个整数n,表示区间的数量 接下来n行,每行包含两个整数,分别表示区间的开始时间和结束时间 输出格式:…...

从一批视频里面抽取固定的第n帧图片(包含并行实现)

以下代码主要用于从 ./*.mp4 的文件夹中&#xff0c;每个视频中抽取第N帧保存成图&#xff0c;用于图生视频训练&#xff0c;考虑到数据量比较大&#xff0c;推荐使用ffmpeg来实现的&#xff0c;性能可以比较高&#xff08;10w个视频差不多十多分钟就可以跑完&#xff09;&…...

论文阅读:2024-arxiv How to Steer LLM Latents for Hallucination Detection?

总目录 大模型安全相关研究&#xff1a;https://blog.csdn.net/WhiffeYF/article/details/142132328 How to Steer LLM Latents for Hallucination Detection? https://arxiv.org/pdf/2503.01917 https://www.doubao.com/chat/2818934852496130 其它资料&#xff1a; http…...

python面试技巧

文章目录 前言面试前面试中良好的沟通表达展示解决问题的能力体现学习能力和热情注意非语言沟通 面试后 前言 在 Python 面试中&#xff0c;掌握一些有效的技巧能让你更好地展现自己的能力和素质&#xff0c;以下是一些实用的面试技巧&#xff1a; 面试前 研究公司和岗位&…...

免费AI编程插件Fitten Code + IntelliJ IDEA实现AI辅助编程实战指南

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家、CSDN平台优质创作者&#xff0c;高级开发工程师&#xff0c;数学专业&#xff0c;拥有高级工程师证书&#xff1b;擅长C/C、C#等开发语言&#xff0c;熟悉Java常用开发技术&#xff0c;能熟练应用常用数据库SQL server,Oracle…...

Vue3 + TypeScript 的 Hooks 实用示例

示例 1: 防抖 Hook&#xff08;useDebounce&#xff09; typescript // hooks/useDebounce.ts import { ref, watch, onUnmounted, type WatchSource } from vue;/*** 防抖 Hook* param source 监听的响应式数据源* param callback 防抖后执行的回调函数* param delay 防抖延…...

【DB2】事务日志满/归档占用较大问题处理记录

某DB2环境经常报错The active log is full and is held by...&#xff0c;并且归档磁盘占用较大 事务日志满 事务日志满可以理解为Oracle的redo追尾&#xff0c;即业务写入量大于redo刷盘速度&#xff0c;这时候其他SQL会陷入等待&#xff0c;容易造成性能问题 一般由两方面原…...

Rust 的征服:从系统编程到全栈开发的 IT 新宠

文章目录 Rust 的本质&#xff1a;性能与安全的完美平衡Rust 的演进&#xff1a;从 Mozilla 的实验到全球热潮核心技术&#xff1a;Rust 的杀手锏与生态所有权与生命周期高并发&#xff1a;无畏线程Cargo&#xff1a;现代构建工具生态繁荣&#xff1a;Crates.io Rust 的杀手级应…...

【力扣hot100题】(086)乘积最大子数组

感觉题目越来越难&#xff0c;这题不看答案真的想不到一点。 一开始绕了不少弯路&#xff0c;甚至想将每一个子数组的积全部求出来比较…… 答案的方法有点难懂。 方法如下&#xff1a;维护两个数&#xff0c;分别是目前为止最大数和最小数&#xff0c;最大数一般来说是正数…...

编译器bug ?

## 问题描述 两个结构几乎相同的模板实现&#xff0c;一个能正常工作&#xff0c;另一个在 VS2019 和 GCC 中都会报错。 ## 最小化测试代码 // bug_report.cpp #include <type_traits> #include <string>template<typename T> struct Type2Type { using t…...

算法刷题记录——LeetCode篇(1.8) [第71~80题](持续更新)

更新时间&#xff1a;2025-04-10 算法题解目录汇总&#xff1a;算法刷题记录——题解目录汇总技术博客总目录&#xff1a;计算机技术系列博客——目录页 优先整理热门100及面试150&#xff0c;不定期持续更新&#xff0c;欢迎关注&#xff01; 72. 编辑距离 给你两个单词 wo…...

leetcode68.左右文本对齐

思路源自 leetcode-字符串篇 68题 文本左右对齐 难度高的模拟类型题目&#xff0c;关键点在于事先知道有多少单词要放在本行并且还要知道本行是不是最后一行&#xff08;最后一行需要全部单空格右对齐&#xff0c;不是最后一行就空格均摊&#xff09;&#xff0c;非最后一行的空…...

leetcode:905. 按奇偶排序数组(python3解法)

难度&#xff1a;简单 给你一个整数数组 nums&#xff0c;将 nums 中的的所有偶数元素移动到数组的前面&#xff0c;后跟所有奇数元素。 返回满足此条件的 任一数组 作为答案。 示例 1&#xff1a; 输入&#xff1a;nums [3,1,2,4] 输出&#xff1a;[2,4,3,1] 解释&#xff1a…...

Java抽象类与抽象方法详解

一、抽象类的作用与定义 1. 核心作用 ​​设计意图​​&#xff1a;当多个子类具有共性行为但具体实现不同时&#xff0c;通过抽象类强制规范子类的实现格式。 ​​典型场景​​&#xff1a; // 定义抽象图形类 public abstract class Shape {// 抽象方法&#xff1a;计算面…...