Docker 高级管理 -- 容器通信技术与数据持久化

目录

第一节:容器通信技术

一:Docker 容器的网络模式

1:Bridge模式

2:Host模式

3:Container模式

4:None模式

5:Overlay 模式

6:Macvlan 模式

7:自定义网络模式

二:端口映射

关键对比

三:容器互联

关键对比

四:容器间通信实现案例

1. 网络创建选项

2. 容器通信实现步骤

3. 通信方式对比

第二节:数据持久化技术

一:Docker的数据管理

1. 数据卷核心概念

2. 数据卷核心作用

3. 数据卷操作命令

4. 数据卷类型对比

二:Docker数据管理注意事项

关键对比:数据卷类型选择


第一节:容器通信技术

一:Docker 容器的网络模式

        当项目大规模使用 Docker 时,容器通信的问题也就产生了。要解决容器通信问题,必须先了解很多关于网络的知识。Docker 的网络模式非常丰富,可以满足不同容器的通信要求,下表列出了这些网络模式的主要信息。

网络模式创建方式特点说明
host 模式--network host容器直接使用宿主机网络栈,无独立网络命名空间,性能高但易端口冲突
container 模式--network container:<已有容器名或ID>新容器共享指定容器的网络命名空间,适用于需要紧密耦合通信的容器组合
none 模式--network none容器仅有lo回环接口,无外部网络连接,适合高安全性需求或手动配置网络场景
bridge 模式默认模式,可通过-d bridge手动指定(通常省略)Docker默认模式,通过docker0虚拟网桥连接容器,有独立IP,通过NAT访问外网
Overlay 模式-d overlay用于Docker Swarm集群,基于VXLAN技术实现跨主机容器通信
macvlan 模式-d macvlan,需指定--subnet--gateway--o parent=<物理网卡>为容器分配唯一MAC地址,直接连接物理网络接口,绕过docker0网桥,性能高
自定义网络docker network create配合--subnet--gateway等参数用户可灵活配置子网、网关、IP范围等参数,创建符合特定需求的网络

1:Bridge模式

特性说明
默认网络模式Docker 安装后自动创建 docker0 虚拟网桥,新容器默认连接到此网桥。
IP 分配Docker 从预定义的子网中为每个容器分配唯一 IP 地址。
容器间通信通过 docker0 网桥实现同一宿主机上的容器间通信。
外部网络访问宿主机通过 NAT(网络地址转换) 将容器私有 IP 转换为宿主机公网 IP 进行通信。
适用场景适用于大多数单机容器场景,提供网络隔离,同时支持外部访问。
优点- 默认配置,简单易用
- 提供网络隔离,避免端口冲突
- 支持 NAT 访问外网
缺点- 相比 host 或 macvlan 模式,网络性能稍低
- 跨主机通信需要额外配置

bridge 模式是 docker 的默认网络模式,不写 --net 参数,就是 bridge 模式。使用 docker run -p 时,docker 实际是在 iptables 做了 DNAT 规则,实现端口转发功能。可以使用 iptables -t nat -vnL 查看。bridge 模式如下图所示:

如果你之前有 Docker 使用经验,你可能已经习惯了使用 --link 参数来使容器互联。

随着 Docker 网络的完善,强烈建议大家将容器加入自定义的 Docker 网络来连接多个容器,而不是使用 --link 参数。

创建一个叫 my-net 的 bridge 类型的网络
 

[root@bogon ~]# docker network create -d bridge my-net

查看都有哪些网络

[root@bogon ~]# docker network ls
NETWORK ID     NAME      DRIVER    SCOPE
8cd27b16846c   bridge    bridge    local
8095f54e4dee   host      host      local
2171fab71098   my-net    bridge    local
be41d33662a5   none      null      local

 运行一个容器并连接到新建的 my-net 网络

[root@bogon ~]# docker run -itd --rm --name busybox1 --network my-net busybox sh -c 'while true;do echo hello;done'
f7614de88f1eabf174de8c4679e4f5407bf1c5fbb4c2932a5f8327ecaea4978

 运行一个容器并加入到 my-net 网络

/ # ping busybox1

这样,busybox1 容器和 busybox2 容器建立了互联关系,如果你有多个容器之间需要互相连接,推荐使用 Docker Compose

2:Host模式

特性说明
网络模式容器直接使用宿主机的网络栈,无独立网络命名空间。
IP 地址容器与宿主机共享 IP 地址,无独立 IP。
端口管理容器直接使用宿主机端口,可能导致端口冲突
网络性能高性能(无 NAT 或网桥转发开销)。
隔离性低隔离性(容器与宿主机网络环境完全共享)。
适用场景适用于需要极致网络性能不担心端口冲突的场景(如性能测试、本地开发)。
优点- 网络延迟低,吞吐量高
- 无需额外配置端口映射
缺点- 无网络隔离,安全性较低
- 多个容器可能因端口冲突无法共存

如果启动容器的时候使用 host 模式,那么这个容器将不会获得一个独立的 Network Namespace,而是和宿主机共用一个 Network Namespace。容器将不会虚拟出自己的网卡,配置自己的 IP 等,而是使用宿主机的 IP 和端口。但是,容器的其他方面,如文件系统、进程列表等还是和宿主机隔离的。Host

模式如下图所示:

[root@bogon ~]# docker run -tid --net=host --name docker_host1 busybox

由于使用了 Host 模式,容器会直接使用宿主机的网络端口,因此可以直接在宿主机上通过 localhost 访问容器内的服务,使用 ifconfig 命令可以看到容器的网络和宿主机的是一致的。

[root@bogon ~]# docker exec -it docker_host1 sh
/ # ifconfig

3:Container模式

特性说明
网络模式新容器共享指定容器的网络命名空间(IP、端口、网络接口等完全一致)。
IP 地址与目标容器使用相同 IP 和端口,无法独立分配。
通信方式容器间直接通过 localhost 或共享网络栈通信,无需经过 NAT 或网桥。
网络性能高性能(无额外网络开销,类似 host 模式但限定共享范围)。
隔离性低隔离性(共享网络栈的容器间无网络隔离)。
适用场景适用于紧密耦合的容器组(如主应用 + Sidecar 日志/监控容器)。
优点- 容器间通信零延迟
- 无需配置端口映射或服务发现
- 资源占用少
缺点- 共享网络的容器不能绑定相同端口
- 调试复杂(网络行为相互影响)

这个模式指定新创建的容器和已经存在的一个容器共享一个 Network Namespace,而不是和宿主机共享。新创建的容器不会创建自己的网卡,配置自己的 IP,而是和一个指定的容器共享 IP、端口范围等。同样,两个容器除了网络方面,其他的如文件系统、进程列表等还是隔离的。两个容器的进程可以通过 lo 网卡设备通信。Container 模式示意图:

[root@bogon ~]# docker run -tid --name host1 busybox

# 创建 host2 容器共享 host1 容器的网络

[root@bogon ~]# docker run -itd --net=container:host1 --name host2 busybox

# 查询 host1 容器的网络

[root@bogon ~]# docker exec -it host1 ifconfig
eth0      Link encap:Ethernet  HWaddr 02:42:AC:11:00:02  inet addr:172.17.0.2  Bcast:172.17.255.255  Mask:255.255.0.0UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1RX packets:8 errors:0 dropped:0 overruns:0 frame:0TX packets:0 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:0 RX bytes:648 (648.0 B)  TX bytes:0 (0.0 B)lo        Link encap:Local Loopback  inet addr:127.0.0.1  Mask:255.0.0.0UP LOOPBACK RUNNING  MTU:65536  Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0TX packets:0 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1 RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

# 查看 host2 容器的网络,确认和 host1 容器的网络一致

[root@bogon ~]# docker exec -it host2 ifconfig

4:None模式

特性说明
网络模式容器仅拥有 lo 回环接口,无任何外部网络连接。
IP 地址无外部 IP,完全隔离。
网络功能默认无法与宿主机、其他容器或外网通信,需手动配置网络(如添加 veth 设备)。
安全性最高隔离性,适用于对网络安全要求极高的场景。
适用场景- 安全敏感型应用(如审计、加密服务)
- 需完全自定义网络的特殊场景
优点- 绝对网络隔离,避免攻击面
- 完全自主控制网络配置
缺点- 无默认网络功能,需手动配置
- 不适合需要常规通信的容器

使用 none 模式,Docker 容器拥有自己的 Network Namespace,但是,并不为 Docker 容器进行任何网络配置。也就是说,这个 Docker 容器没有网卡、IP、路由等信息。需要我们自己为 Docker 容器添加网卡、配置 IP 等。None 模式示意图:

[root@bogon ~]# docker run -itd --net=none --name none01 busybox sh
c7805a0df84bdfb370c106b24eaba173abd4fcee6ee689eade46191015548a
[root@bogon ~]# docker exec -it none01 sh
/ # ifconfig
lo        Link encap:Local Loopbackinet addr:127.0.0.1  Mask:255.0.0.0UP LOOPBACK RUNNING  MTU:65536  Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0TX packets:0 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

5:Overlay 模式

Overlay 模式主要用于 Docker Swarm 集群,它允许容器在不同的 Docker 宿主机之间进行通信。它基于 VXLAN(Virtual eXtensible Local Area Network)技术,在物理网络之上创建一个虚拟的覆盖网络。

当容器之间进行通信时,数据包会被封装在 VXLAN 报头中,通过物理网络进行传输。在接收端,VXLAN 报头会被解封装,还原出原始的数据包。

Overlay 网络是分布式的,每个 Docker 宿主机上都有一个网络代理(如 Docker 的 docker_gwbridge)负责管理和转发数据包。

# 在 Docker Swarm 集群中创建一个 Overlay 网络
docker network create -d overlay my_overlay_network
# 在不同的宿主机上创建服务并连接到 Overlay 网络
docker service create --name my_service --network my_overlay_network nginx

6:Macvlan 模式

在 Macvlan 模式下,Docker 为每个容器分配一个唯一的 MAC 地址,使得容器在网络中看起来像一个独立的物理设备。

容器直接连接到宿主机的物理网络接口,绕过了 docker0 网桥,从而提高了网络性能。容器可以直接与外部网络进行通信,就像一个独立的主机一样。

每个容器都有自己独立的网络配置,与宿主机和其他容器之间相互隔离。

# 创建一个 Macvlan 网络 
docker network create -d macvlan \
--subnet=192.168.1.0/24 \
--gateway=192.168.1.1 \
-o parent=eth0 \
my_macvlan_network
# 创建一个使用 Macvlan 网络的容器
docker run -d --name my_macvlan_container --network my_macvlan_network nginx

7:自定义网络模式

除了上述内置的网络模式,你还可以使用 docker network create 命令创建自定义的 bridge 网络,以满足特定的网络需求,例如指定子网、网关、IP 范围等。

使用如下命令创建一个自定义网络

docker network create \
--subnet=172.21.0.0/16 \
--gateway=172.21.0.1 \
my_custom_network

此命令的主要目的是创建一个新的 Docker 网络,这个网络可以用于容器之间的通信。默认情况下,创建的是一个基于 bridge 驱动的网络。

参数/选项说明示例值作用
docker network createDocker 创建网络的基础命令-用于创建自定义 Docker 网络
--subnet指定网络的子网范围(CIDR 格式)172.21.0.0/16定义容器的 IP 分配范围(示例中可用 IP:172.21.0.1 ~ 172.21.255.254)
--gateway设置网络的网关地址(必须是子网内的有效 IP)172.21.0.1容器通过该网关访问外部网络(类似路由器的功能)
<network_name>自定义网络的名称my_custom_network创建容器时通过名称连接到此网络(如 --network=my_custom_network

创建一个新的容器并加入这个自定义网络

docker run -d --name my_container --network my_custom_network nginx

二:端口映射

特性说明命令示例适用场景
随机映射(-P 大写)自动将容器内 EXPOSE 声明的所有端口随机映射到宿主机的高端口(32768-61000)docker run -d -P nginx快速测试,避免手动指定端口冲突
指定映射(-p 小写)手动指定宿主机端口与容器端口的映射关系docker run -d -p 8080:80 nginx(宿主机8080 → 容器80)生产环境标准化部署,需固定端口
宿主机随机端口仅指定容器端口,宿主机端口由 Docker 自动分配docker run -d -p 80 nginx(容器80 → 宿主机随机端口如32769)需要暴露容器端口但不关心宿主机具体端口
多端口映射同时映射多个端口docker run -d -p 8080:80 -p 443:443 nginx需暴露多个服务的场景(如HTTP+HTTPS)
绑定特定IP限制端口映射仅对指定宿主机IP生效docker run -d -p 192.168.1.100:8080:80 nginx增强安全性,仅允许特定网络接口访问
协议指定显式声明端口协议(TCP/UDP)docker run -d -p 8080:80/tcp -p 53:53/udp nginx需区分协议的场景(如DNS服务用UDP)
--rm 选项容器停止后自动删除docker run --rm -d -p 8080:80 nginx临时测试,避免残留容器

关键对比

对比项-P(大写)-p(小写)
端口分配Docker 自动随机选择(32768-61000)用户手动指定或部分随机
映射范围容器内所有 EXPOSE 端口仅映射命令行中指定的端口
使用场景快速测试、临时环境生产环境、需精确控制端口的场景

注意事项

  1. 端口冲突:宿主机端口若被占用,容器会启动失败(错误提示 Bind for 0.0.0.0:8080 failed)。

  2. 防火墙:确保宿主机防火墙(如 firewalld/iptables)放行映射的端口。

  3. 安全建议

    • 生产环境避免使用随机端口(-P)。

    • 限制IP绑定(如 -p 127.0.0.1:8080:80)以减少暴露面。

三:容器互联

特性说明命令示例适用场景
--link 方式通过别名连接容器(已逐渐被弃用)docker run -dit --name web02 --link web01:myweb01 centos:7旧版本 Docker 兼容场景
自定义网络方式创建自定义网络,容器加入同一网络即可互联(推荐方式)docker network create mynet
docker run -dit --network=mynet --name web01 centos:7
docker run -dit --network=mynet --name web02 centos:7
生产环境,需灵活管理容器通信
DNS 自动解析同一自定义网络内的容器可通过容器名直接通信在 web02 中直接执行 ping web01替代 --link,无需手动配置别名
/etc/hosts 注入--link 会在目标容器的 /etc/hosts 中写入源容器 IP 和别名cat /etc/hosts 显示 172.17.0.2 myweb01调试或兼容旧应用
隔离性默认 bridge 网络隔离容器;自定义网络提供可控的互联-需平衡隔离与通信需求的场景
安全性--link 仅单向通信;自定义网络支持双向通信-需细粒度控制通信权限的场景

关键对比

对比项--link(旧方式)自定义网络(推荐方式)
通信方向单向(源→目标)双向
配置复杂度需手动指定别名自动通过容器名解析
维护性难扩展(容器增多后混乱)易管理(天然支持多容器互联)
版本兼容性旧版本支持,新版本逐渐弃用所有现代 Docker 版本均支持

创建自定义网络并互联容器

# 创建网络
docker network create mynet# 启动容器并加入同一网络
docker run -dit --network=mynet --name web01 centos:7
docker run -dit --network=mynet --name web02 centos:7# 测试通信(在 web02 中)
docker exec -it web02 ping web01

--link 方式(仅作了解)

docker run -dit --name web01 centos:7
docker run -dit --name web02 --link web01:myweb01 centos:7
docker exec -it web02 ping myweb01

注意事项

  1. 弃用警告--link 可能导致依赖问题,建议迁移到自定义网络。

  2. DNS 优势:自定义网络自动提供容器名解析,无需维护 /etc/hosts

  3. 多网络支持:一个容器可加入多个网络,实现复杂拓扑(如隔离后端数据库与前端服务)。

四:容器间通信实现案例

1. 网络创建选项
选项说明示例命令
--driver / -d指定网络驱动类型(默认 bridgedocker network create -d bridge my_network
--subnet定义网络的子网范围(CIDR 格式)docker network create --subnet=172.18.0.0/16 my_network
--gateway设置网络的网关 IP(需在子网范围内)docker network create --subnet=172.19.0.0/16 --gateway=172.19.0.1 my_network
--ip-range指定容器 IP 的分配范围(子网的子集)docker network create --subnet=172.20.0.0/16 --ip-range=172.20.1.0/24 my_network
--internal创建仅限内部通信的网络(禁止访问外网)docker network create --internal my_internal_network
--attachable允许非 Swarm 服务的容器加入网络docker network create --attachable my_attachable_network

2. 容器通信实现步骤
步骤操作关键命令
1. 创建自定义网络使用 docker network create 创建网络docker network create my_net
2. 启动容器并加入网络通过 --net 将容器连接到同一网络docker run -dit --name pc01 --net=my_net centos:7
3. 测试通信在同一网络内的容器可通过容器名直接通信docker exec -it pc01 ping pc02(成功)
4. 隔离验证未加入同一网络的容器无法通信docker exec -it pc01 ping web03(失败)

3. 通信方式对比
特性--link(旧方式)自定义网络(推荐方式)
通信方向单向双向
配置复杂度需手动指定别名自动通过容器名解析
扩展性难维护(容器增多后混乱)天然支持多容器互联
跨主机支持仅单机支持(结合 overlay 驱动)
安全性低(依赖 /etc/hosts 注入)高(隔离网络 + DNS 解析)

第二节:数据持久化技术

一:Docker的数据管理

1. 数据卷核心概念
特性说明
定义绕过容器文件系统,直接挂载宿主机目录到容器内部的特殊目录
生命周期独立于容器,删除容器后数据卷仍保留
存储位置默认位于宿主机 /var/lib/docker/volumes/ 下,也可绑定到自定义宿主目录
共享性支持多个容器同时挂载同一数据卷

2. 数据卷核心作用
作用说明应用场景示例
数据持久化容器删除后数据仍保留在宿主机数据库容器(如 MySQL、PostgreSQL)
数据共享多个容器读写同一数据卷共享配置文件、日志文件或静态资源(如 Nginx 配置)
备份与恢复直接操作宿主机上的数据卷文件进行备份定期备份数据库文件到外部存储
分离数据与应用容器镜像仅包含应用,数据独立存储开发环境与生产环境使用相同镜像,通过不同数据卷加载数据

3. 数据卷操作命令
操作命令示例说明
创建数据卷docker volume create my_volume创建名为 my_volume 的匿名卷
绑定挂载目录docker run -v /宿主机路径:/容器路径 nginx将宿主机目录直接挂载到容器(需绝对路径)
使用命名卷docker run -v my_volume:/容器路径 nginx使用已创建的命名卷
查看数据卷列表docker volume ls列出所有数据卷
删除数据卷docker volume rm my_volume删除指定数据卷(需先解除容器挂载)

4. 数据卷类型对比
类型匿名卷命名卷绑定挂载
创建方式-v /容器路径docker volume create + -v 卷名:/容器路径-v /宿主机路径:/容器路径
存储位置Docker 管理(随机哈希命名)Docker 管理(用户自定义名称)用户指定宿主机目录
可维护性低(依赖容器生命周期)高(显式管理)高(直接操作宿主机文件)
适用场景临时数据生产环境持久化数据开发调试或需直接修改宿主机文件的场景

二:Docker数据管理注意事项

注意事项说明示例/建议
1. 选择合适的数据卷类型根据场景选择匿名卷、具名卷或绑定挂载匿名卷:临时数据(如编译缓存)
具名卷:数据库持久化(如 MySQL)
绑定挂载:开发时共享配置文件
2. 使用绝对路径绑定挂载宿主机目录时必须使用绝对路径-v /home/user/app:/app(正确)
-v ./app:/app(错误,需绝对路径)
3. 定期清理数据卷匿名卷和未使用的具名卷会占用磁盘空间docker volume ls(查看)
docker volume rm <卷名>(删除)
4. 容器内数据持久化关键数据必须挂载到数据卷,避免容器删除后丢失MySQL 数据目录:-v mysql_data:/var/lib/mysql
5. 数据共享与并发控制多容器挂载同一数据卷时需处理并发问题数据库容器:应用层加锁或使用事务
日志文件:使用日志收集工具(如 Fluentd)
6. 备份与恢复通过操作宿主机上的数据卷文件实现备份备份 MySQL 数据卷:
docker run --rm -v mysql_data:/volume -v /backup:/backup alpine tar czf /backup/mysql_backup.tar.gz /volume
7. 权限管理确保容器内用户有权限访问挂载的目录Nginx 容器:
宿主机目录权限设为 755,用户组与容器内 www-data 匹配
8. 安全性敏感数据避免直接挂载,使用 Docker Secret 或加密卷配置文件含密码:
docker secret create db_password ./password.txt

关键对比:数据卷类型选择

类型匿名卷具名卷绑定挂载
管理难度难(随机名称,易遗留)易(自定义名称,可追溯)易(直接操作宿主机文件)
持久性是(需手动清理)是(显式删除)是(依赖宿主机目录)
适用场景临时数据、测试环境生产环境数据库、持久化存储开发调试、配置文件共享

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

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

相关文章

链路管理和命令管理

第1章 链路管理在通信领域&#xff0c;链路&#xff08;Link&#xff09; 是两个设备之间进行数据传输的物理或逻辑路径。例如&#xff1a;网络链路&#xff1a;TCP/IP 连接、UDP 通信、WebSocket串口链路&#xff1a;RS232、RS485、CAN 总线无线链路&#xff1a;蓝牙、Wi-Fi、…

BERT模型基本原理及实现示例

BERT&#xff08;Bidirectional Encoder Representations from Transformers&#xff09;是Google在2018年提出的预训练语言模型&#xff0c;其核心思想是通过双向Transformer结构捕捉上下文信息&#xff0c;为下游NLP任务提供通用的语义表示。 一、模型架构BERT基于Transforme…

NPM组件包 json-cookie-csv 等窃取主机敏感信息

【高危】NPM组件包 json-cookie-csv 等窃取主机敏感信息 漏洞描述 当用户安装受影响版本的 json-cookie-csv 等NPM组件包时会窃取用户的主机名、用户名、工作目录、IP地址等信息并发送到攻击者可控的服务器地址。 MPS编号MPS-xo1f-4kue处置建议强烈建议修复发现时间2025-07-…

【Netty+WebSocket详解】WebSocket全双工通信与Netty的高效结合与实战

一、 Netty网络框架、WebSocket协议基础 1.1 Netty网络框架介绍 1.2 WebSocket简介 1.3 WebSocket握手流程 二、为什么选择NettyWebSocket&#xff1f; 三、NettyWebSocket与Spring WebSocket 3.1 架构层级对比 3.2 核心组件差异 3.3 协议支持深度 3.4 性能基准测试 3.5 开发…

5、Vue中使用Cesium实现交互式折线绘制详解

引言 Cesium是一款强大的开源3D地理信息可视化引擎&#xff0c;广泛应用于数字地球、地图可视化等领域。在Vue项目中集成Cesium可以快速构建高性能的地理信息应用。本文将详细介绍如何在Vue项目中实现交互式折线绘制功能&#xff0c;包括顶点添加、临时绘制、距离计算等核心功…

mysql实战之主从复制

原理图理论&#xff1a;一、配置准备每台主机都安装mysql对每台主机都进行对时操作&#xff0c;减少时间误差[rooteveryone ~]# timedatectl set-timezone Asia/Shanghai [rooteveryone ~]# systemctl restart chronyd.service 对每台主机都进行关闭防火墙、上下文等&#xff0…

中望CAD2026亮点速递(5):【相似查找】高效自动化识别定位

本文为CAD芯智库整理&#xff0c;未经允许请勿复制、转载&#xff01;原文转自&#xff1a;www.xwzsoft.com/h-nd-594.html CAD的相似查找功能主要应用于需要重复操作、标准化控制、一致性检查或复杂模式识别的场景&#xff0c;通过图形相似度算法&#xff0c;快速找到匹配的图…

国产化条码类库Spire.Barcode教程:使用 C# 读取二维码(QR Code)——从图片或数据流解析

二维码已成为现代应用的常见组成部分&#xff0c;广泛应用于用户身份验证、移动支付、商品包装和活动票务等场景。很多使用 C# 开发的系统需要从图像或扫描件中提取二维码信息&#xff0c;因此掌握二维码识别技术显得尤为重要。 为满足这类需求&#xff0c;开发者需要一种既可…

IPSAN 共享存储详解:架构、优化与落地实践指南

一、IPSAN 技术定位与核心价值核心价值对比矩阵&#xff1a;维度IPSANFC-SAN实现方案成本端口成本$500端口成本$2000复用IP网络设备传输距离跨地域&#xff08;VPN/专线&#xff09;≤10公里两地三中心架构运维效率SNMP/CLI管理Zone/ALPA管理自动化运维工具链协议标准IETF RFC …

【卫星语音】基于神经网络的低码率语音编解码(ULBC)方案架构分析:以SoundStream为例

摘要 随着深度学习技术的快速发展&#xff0c;基于神经网络的音频编解码技术已成为下一代音频压缩的重要研究方向。本文以Google提出的SoundStream为核心分析对象&#xff0c;深入探讨其在低码率语音编解码领域的创新架构设计和关键技术突破。SoundStream通过全卷积编解码器网络…

技术面试问题总结一

MySQL的几种锁机制一、从锁的粒度角度划分表级锁机制&#xff1a;它是对整张表进行锁定的一种锁。当一个事务对表执行写操作时&#xff0c;会获取写锁&#xff0c;在写锁持有期间&#xff0c;其他事务无法对该表进行读写操作&#xff1b;而当事务执行读操作时&#xff0c;会获取…

Python(一)

基本语法&#xff1a;变量&#xff0c;语法变量类型&#xff1a;不同于Java&#xff0c;C语言&#xff0c;C&#xff0c;Python在创建一个变量的时候&#xff0c;不需要声明变量类型&#xff0c;由编译器自行识别Python语句在只有一个语句的时候语句末尾不需要分号&#xff0c;…

Adaptive AUTOSAR中的Firewall技术:智能汽车网络安全架构的核心

1 防火墙技术基础 1.1 定义与演进历程 防火墙(Firewall)作为一种位于内部网络与外部网络之间的网络安全系统,本质上是依照特定规则允许或限制数据传输的信息安全防护机制。在汽车电子电气架构从分布式向集中式转变的背景下,防火墙技术已从传统的IT领域深度融入Adaptive A…

android闪光灯源码分析

目录 一、APP层源码分析 二&#xff0c;framework层代码分析 ​​​​​​​2.1 binder溯源 这几天撸了android11 aosp闪光灯源码&#xff0c;本着前人栽树后人乘凉的原则&#xff0c;有志于android系统开发的新同学们提供一盏明灯&#xff0c;照亮你们前行。 本人撸代码风格&…

文心一言4.5开源部署指南及文学领域测评

&#x1f4dd;个人主页&#xff1a;哈__ 期待您的关注 目录 一、引言 二、文心一言开源模型 2.1 MoE架构 2.2 文心一言MoE架构 三、文心一言稠密模型部署 3.1 产品选择 3.2 环境选择 3.3 Python3.12安装 3.3 PaddlePaddle-GPU安装 3.4 FastDeploy-GPU安装 ​编辑3.…

深入探讨 C++ 中的浮点数数据类型

核心概念&#xff1a;IEEE 754 标准 C 中的浮点数&#xff08;float, double, long double&#xff09;在绝大多数现代系统上遵循 IEEE 754 标准。这个标准定义了浮点数在内存中的二进制表示方式、运算规则、特殊值&#xff08;如无穷大、NaN&#xff09;等。数据类型与精度 fl…

相机:以鼠标点为中心缩放(使用OpenGL+QT开发三维CAD)

很多软件中&#xff08;Auto CAD、ODA等&#xff09;支持以鼠标点为中心进行放缩操作&#xff0c;有什么黑科技吗&#xff1f; 本章节为相机原理和实现的补充内容&#xff0c;支持鼠标放缩时以鼠标点为中心进行放缩。 对应视频课程已上线&#xff0c;欢迎观看和支持~ https:…

​​XAMPP安全升级指南:修复CVE-2024-4577漏洞,从PHP 8.2.12升级至PHP 8.4.10​​

​​1. 背景与漏洞概述​​ 近期,PHP官方披露了一个高危漏洞 ​​CVE-2024-4577​​,该漏洞影响PHP 8.2.x及更早版本,可能导致远程代码执行(RCE)或信息泄露。由于XAMPP默认捆绑的PHP版本(如8.2.12)可能受此漏洞影响,建议用户尽快升级至最新的​​PHP 8.4.10​​(或官…

ES 压缩包安装

以下是 Elasticsearch (ES) 通过 .tar.gz 压缩包安装的详细步骤&#xff08;适用于 Linux/macOS 系统&#xff09;&#xff1a; 1. 准备工作 1.1 检查系统依赖 Java 环境&#xff1a;ES 需要 JDK&#xff0c;推荐 OpenJDK 11/17&#xff08;ES 7.x/8.x 兼容版本&#xff09;。…

RoboRefer:面向机器人视觉-语言模型推理的空间参考

25年6月来自北航、北大和北京智源的论文“RoboRefer: Towards Spatial Referring with Reasoning in Vision-Language Models for Robotics”。 空间参考是实体机器人与三维物理世界交互的基本能力。然而&#xff0c;即使有了强大的预训练视觉-语言模型 (VLM)&#xff0c;近期方…