Docker 与 Podman常用知识汇总
一、常用命令的对比汇总
1、基础说明
-
Docker:传统的容器引擎,使用
dockerd
守护进程。 -
Podman:无守护进程、无root容器引擎,兼容 Docker CLI。
Podman 命令几乎完全兼容 Docker 命令,只需将
docker
替换为podman
。
2、命令对比总表
1. 镜像管理(Images)
功能 | Docker 命令 | Podman 命令 | 说明 | 示例 |
---|---|---|---|---|
拉取镜像 | docker pull | podman pull | 从远程仓库拉取镜像 | docker pull nginx |
查看镜像 | docker images | podman images | 列出本地镜像 | podman images |
删除镜像 | docker rmi | podman rmi | 删除本地镜像 | docker rmi nginx |
构建镜像 | docker build | podman build | 根据 Dockerfile 构建镜像 | docker build -t myapp . |
2. 容器管理(Containers)
功能 | Docker 命令 | Podman 命令 | 说明 | 示例 |
---|---|---|---|---|
运行容器 | docker run | podman run | 运行新容器 | docker run -d -p 80:80 nginx |
查看容器 | docker ps | podman ps | 查看运行中容器 | podman ps |
查看所有容器 | docker ps -a | podman ps -a | 包含已停止容器 | podman ps -a |
停止容器 | docker stop | podman stop | 停止容器运行 | docker stop mycontainer |
启动容器 | docker start | podman start | 启动已停止容器 | podman start mycontainer |
删除容器 | docker rm | podman rm | 删除容器 | docker rm mycontainer |
查看容器日志 | docker logs | podman logs | 查看容器输出 | docker logs mycontainer |
进入容器 | docker exec -it | podman exec -it | 在容器中执行命令 | docker exec -it mycontainer bash |
3. 镜像仓库与标签(Registry & Tags)
功能 | Docker 命令 | Podman 命令 | 说明 | 示例 |
---|---|---|---|---|
给镜像打标签 | docker tag | podman tag | 添加镜像别名 | docker tag nginx myrepo/nginx:latest |
推送镜像 | docker push | podman push | 上传镜像到远程仓库 | docker push myrepo/nginx |
登录仓库 | docker login | podman login | 登录远程仓库 | podman login registry.example.com |
4. 容器网络(Networking)
功能 | Docker 命令 | Podman 命令 | 说明 | 示例 |
---|---|---|---|---|
创建网络 | docker network create | podman network create | 创建自定义网络 | docker network create mynet |
查看网络 | docker network ls | podman network ls | 显示可用网络 | podman network ls |
删除网络 | docker network rm | podman network rm | 删除自定义网络 | docker network rm mynet |
5. 容器卷(Volumes)
功能 | Docker 命令 | Podman 命令 | 说明 | 示例 |
---|---|---|---|---|
创建卷 | docker volume create | podman volume create | 创建数据卷 | docker volume create myvol |
查看卷 | docker volume ls | podman volume ls | 列出所有卷 | podman volume ls |
删除卷 | docker volume rm | podman volume rm | 删除数据卷 | podman volume rm myvol |
挂载卷运行容器 | docker run -v | podman run -v | 挂载卷到容器 | docker run -v myvol:/data nginx |
6. 容器导入导出(Import/Export)
功能 | Docker 命令 | Podman 命令 | 说明 | 示例 |
---|---|---|---|---|
导出容器 | docker export | podman export | 导出容器文件系统为 tar 包 | docker export mycontainer > mycontainer.tar |
导入容器 | docker import | podman import | 从 tar 文件导入镜像 | docker import mycontainer.tar |
保存镜像 | docker save | podman save | 保存镜像为 tar 包 | docker save nginx > nginx.tar |
加载镜像 | docker load | podman load | 从 tar 包加载镜像 | docker load < nginx.tar |
7. 容器信息与检查(Inspect)
功能 | Docker 命令 | Podman 命令 | 说明 | 示例 |
---|---|---|---|---|
检查镜像/容器详情 | docker inspect | podman inspect | 查看对象详细信息 | docker inspect mycontainer |
8. 系统资源(System)
功能 | Docker 命令 | Podman 命令 | 说明 | 示例 |
---|---|---|---|---|
清理无用资源 | docker system prune | podman system prune | 清理未使用镜像、容器等 | podman system prune -a |
查看磁盘使用 | docker system df | podman system df | 显示容器磁盘使用情况 | docker system df |
查看版本 | docker version | podman version | 查看当前版本 | podman version |
查看系统信息 | docker info | podman info | 显示系统整体信息 | podman info |
9. Podman 专属命令
功能 | Podman 命令 | 说明 | 示例 |
---|---|---|---|
创建 pod | podman pod create | 创建一组共享网络和命名空间的容器组 | podman pod create --name mypod |
将容器加入 pod | podman run --pod | 运行容器加入已有 pod | podman run --pod=mypod nginx |
查看 pod | podman pod ps | 显示当前 pods | podman pod ps |
删除 pod | podman pod rm | 删除 pod | podman pod rm mypod |
3、总结
-
Docker 是工业标准,支持广泛,适合多数部署环境。
-
Podman 更安全、无 root、支持 systemd 集成,更适合企业和开发环境的细粒度管理。
二、 网络知识
1、基本网络原理
Docker 与 Podman 网络模型对比:
特性 | Docker 默认 | Podman 默认 |
---|---|---|
网络驱动 | bridge、host、overlay、macvlan 等 | CNI(Container Network Interface) |
网络隔离机制 | 使用 docker0 网桥,iptables/NAT 规则管理 | 使用 CNI 插件(同 Kubernetes 网络方式) |
默认网段 | 172.17.0.0/16 | 通常为 10.88.0.0/16 (由 CNI 配置) |
服务暴露方式 | -p 端口映射 或 host 网络 | 同样使用 -p 或 --network=host |
网络可管理性 | Docker 自带命令管理网络 | Podman 借助 CNI 插件配置,如 netavark |
2、Docker 网络原理
1. Docker 默认网络
运行 docker network ls
可看到:
$ docker network ls
NETWORK ID NAME DRIVER SCOPE
b6509f3a0fd6 bridge bridge local
65a3c49f9fd3 host host local
5d6785e4d07b none null local
-
bridge
:默认,容器间可通信,外部需端口映射。 -
host
:使用主机网络,容器与宿主机共享网络。 -
none
:无网络连接,最安全但最孤立。
2. 容器连接到网络
docker run --name web --network bridge -p 8080:80 nginx
-
--network
连接到指定网络 -
-p
映射主机端口到容器端口
3. 创建自定义网络
docker network create mynet
docker run --rm -it --network=mynet busybox
-
容器可通过名称互相解析(DNS 支持)
3、Podman 网络原理
1. Podman 使用 CNI 插件
默认使用 /etc/cni/net.d/
下的配置文件(如 87-podman-bridge.conflist
)定义网络:
{"cniVersion": "0.4.0","name": "podman","plugins": [{"type": "bridge","bridge": "cni-podman0","ipam": {"type": "host-local","subnet": "10.88.0.0/16"}}]
}
2. 查看 Podman 网络
podman network ls
3. 启动容器并使用网络
podman run -d --name web --network podman -p 8080:80 nginx
Podman 会自动创建 cni-podman0
网桥并配置 NAT、防火墙规则。
4、进阶:自定义网络
Docker 自定义网络(桥接)
docker network create \--driver bridge \--subnet=192.168.100.0/24 \--gateway=192.168.100.1 \custom_net
Podman 自定义网络
podman network create \--subnet 192.168.200.0/24 \--gateway 192.168.200.1 \custom_net
然后运行容器:
podman run --rm -it --network custom_net alpine
5、常见场景与命令总结
场景 | Docker 命令 | Podman 命令 |
---|---|---|
查看网络 | docker network ls | podman network ls |
创建网络 | docker network create | podman network create |
查看容器 IP | docker inspect | podman inspect |
使用 host 网络 | --network host | --network host |
显示网络配置 | /etc/docker/daemon.json | /etc/cni/net.d/ |
6、实用建议
-
开发环境:建议使用 bridge + 端口映射。
-
生产环境:
-
高性能需求:使用
--network=host
-
多容器通信:创建自定义网络,容器间通过 DNS 名称通信
-
-
安全需求:使用
--network=none
,禁用网络
7、常见容器网络架构
容器可以创建多种网络架构,这些架构决定了容器如何与其他容器以及外部网络进行通信。以下是一些常见的容器网络架构及其特点:
1. Bridge 网络(默认模式)
- 架构原理:
- 容器运行时(如 Docker)会在宿主机上创建一个虚拟的以太网桥(通常命名为
docker0
)。 - 每个容器启动时,都会创建一对虚拟网络接口(
veth pair
)。其中一个接口位于容器的网络命名空间中(例如eth0
),另一个接口连接到宿主机上的桥接网络。 - 宿主机上的桥接网络负责在连接到它的所有网络接口(包括容器的虚拟接口和宿主机的物理网卡)之间转发数据包。
- 容器通过桥接网络的私有 IP 地址进行通信。
- 当容器需要访问外部网络时,通常会通过宿主机的网络地址转换(NAT)将容器的私有 IP 地址转换为宿主机的 IP 地址,然后通过宿主机的物理网卡进行通信。
- 容器运行时(如 Docker)会在宿主机上创建一个虚拟的以太网桥(通常命名为
- 特点:
- 隔离性好: 每个容器拥有独立的网络命名空间和私有 IP 地址,相互之间默认是隔离的。
- 易于管理: 这是最简单和最常用的网络模式,容器运行时会自动创建和管理桥接网络。
- 端口映射: 要使外部网络能够访问容器内的服务,需要进行端口映射(Port Mapping),将宿主机上的某个端口映射到容器内的端口。
- 容器间通信: 同一个桥接网络上的容器可以直接通过 IP 地址进行通信。
- 外部访问限制: 默认情况下,外部网络无法直接访问容器,需要通过端口映射才能实现。
2. Host 网络
- 架构原理:
- 容器直接共享宿主机的网络命名空间。
- 容器不会创建自己的虚拟网络接口,而是直接使用宿主机的网络接口和 IP 地址。
- 容器内的服务监听的端口直接暴露在宿主机上,无需进行端口映射。
- 特点:
- 性能高: 由于容器直接使用宿主机的网络栈,避免了额外的虚拟化开销,网络性能相对较高。
- 端口冲突风险: 同一台宿主机上的多个容器不能监听相同的端口,因为它们共享同一个网络命名空间。
- 隔离性差: 容器与宿主机共享网络环境,隔离性较差。
- 配置简单: 无需进行端口映射,配置相对简单。
- 适用场景:
- 对网络性能要求较高的场景。
- 只需要运行单个需要特定端口的服务,且不需要与其他容器隔离网络的情况。
3. Macvlan/IPVlan 网络
- 架构原理:
- 允许为容器分配宿主机物理网络接口上的 MAC 地址和 IP 地址。
- 每个容器在物理网络上看起来就像一个独立的物理设备。
- Macvlan: 基于单个物理接口创建多个虚拟接口,每个接口拥有独立的 MAC 地址。
- IPVlan: 允许多个虚拟接口共享同一个 MAC 地址,但拥有不同的 IP 地址。
- 特点:
- 直接接入物理网络: 容器可以直接与物理网络中的其他设备通信,无需 NAT 或端口映射。
- 更好的兼容性: 对于某些需要直接与物理网络交互的应用(例如某些网络设备或监控工具)非常有用。
- 需要网络支持: 可能需要在物理网络交换机上进行额外的配置(例如允许混杂模式)。
- 管理复杂性: 配置和管理相对复杂。
- 适用场景:
- 需要容器在物理网络中拥有独立身份的场景。
- 需要容器直接与物理网络中的设备进行通信的场景。
4. Overlay 网络
- 架构原理:
- 构建在现有网络之上的虚拟网络。
- 允许多个宿主机上的容器在逻辑上属于同一个网络,即使它们在不同的物理网络中。
- 通常使用隧道技术(例如 VXLAN)将不同宿主机上的容器网络连接起来。
- 特点:
- 跨主机通信: 使得部署在不同宿主机上的容器能够像在同一个局域网中一样进行通信。
- 灵活的网络拓扑: 可以创建复杂的网络拓扑结构。
- 适用于微服务架构: 非常适合跨多个主机部署的微服务应用。
- 管理复杂性: 配置和管理相对复杂,通常需要专门的网络编排工具(例如 Docker Swarm 或 Kubernetes)。
- 适用场景:
- 需要跨多个宿主机部署容器化应用的场景。
- 需要构建复杂的、可扩展的容器网络拓扑的场景。
5. Custom 网络
- 架构原理:
- 用户可以根据自己的需求创建自定义的网络。
- 可以是自定义的桥接网络,也可以是使用第三方网络插件创建的网络(例如 Calico、Flannel、Weave Net 等)。
- 特点:
- 高度灵活性: 可以根据具体需求定制网络配置,例如指定 IP 地址范围、子网、网关等。
- 可扩展性: 可以通过第三方网络插件扩展容器网络的功能,例如网络策略、安全控制等。
- 管理复杂性: 配置和管理取决于自定义网络的类型和所使用的工具。
- 适用场景:
- 需要特定的网络配置或功能的场景。
- 需要集成第三方网络解决方案的场景。
选择哪种网络架构取决于你的具体需求,包括:
- 容器之间的隔离要求
- 容器是否需要直接暴露给外部网络
- 是否需要跨多个宿主机进行容器通信
- 对网络性能的要求
- 管理的复杂性
三、在 PVE 虚拟网络下配置 Docker(或Podman) 网络桥
1、场景目标
-
Docker 容器运行在 PVE 中的 VM;
-
每个容器拥有独立内网 IP,可被其他主机访问;
-
网络桥使用 Proxmox 提供的桥(如
vmbr0
); -
可选:静态 IP、DHCP、容器间通信。
2、PVE 虚拟机网络准备
假设:
-
宿主机 PVE 的桥接网卡为
vmbr0
; -
它连接到内网的物理交换机;
-
容器网络希望使用该网桥,以获得和宿主一样的内网地址(如
192.168.1.x
)。
在 PVE 中创建网桥:
在 /etc/network/interfaces
中应有类似配置:
auto vmbr0
iface vmbr0 inet staticaddress 192.168.1.10netmask 255.255.255.0gateway 192.168.1.1bridge_ports enp3s0bridge_stp offbridge_fd 0
3、Docker 使用 macvlan 桥接到 vmbr0
1. 创建 macvlan 网络(桥接到宿主网卡)
在宿主机(VM 内部)执行:
docker network create -d macvlan \--subnet=192.168.1.0/24 \--gateway=192.168.1.1 \-o parent=eth0 \docker_macvlan
-
parent=eth0
为 VM 的网卡设备,需根据实际替换; -
此网卡需支持混杂模式(Proxmox 网桥需设置
bridge_ports
启用混杂模式); -
子网和网关请根据你的内网实际情况配置。
📌 重要提醒:macvlan 网络的容器无法直接访问宿主机(除非用额外配置)。
2. 使用该网络启动容器
docker run --rm -d \--name nginx_mac \--network docker_macvlan \--ip 192.168.1.88 \nginx
-
容器将直接获得
192.168.1.88
,和内网其他设备互通。
4、Podman 使用 macvlan 桥接(类似)
podman network create \--driver macvlan \--subnet 192.168.1.0/24 \--gateway 192.168.1.1 \--macvlan eth0 \podman_macvlan
然后运行:
podman run --rm -d \--network podman_macvlan \--ip 192.168.1.89 \nginx
5、让容器访问宿主机(可选)
由于 macvlan 本质上“隔离”了宿主机,可添加一个额外的 veth
接口桥接:
步骤如下(高级):
-
创建一个额外接口桥接到宿主;
-
配置 NAT 或 static route;
-
或者在 PVE 中启用
macvtap
并使用虚拟交换机。
6、总结:PVE + Docker 网络桥配置方案
项目 | 方法 | 是否推荐 |
---|---|---|
Bridge 桥接到 vmbr0 | 使用 macvlan | ✅ 推荐 |
宿主可访问容器 | 使用 veth + bridge | ⚠️ 需额外配置 |
容器独立 IP | 是(可访问内网) | ✅ |
支持 DHCP 分配 | 否(需静态 IP) | ⚠️ 限制 |
容器间通信 | 支持(同一 macvlan 网络) | ✅ |
相关文章:
Docker 与 Podman常用知识汇总
一、常用命令的对比汇总 1、基础说明 Docker:传统的容器引擎,使用 dockerd 守护进程。 Podman:无守护进程、无root容器引擎,兼容 Docker CLI。 Podman 命令几乎完全兼容 Docker 命令,只需将 docker 替换为 podman。…...
Spark-SQL简介
Spark-SQL: Spark SQL 是 Spark 用于结构化数据(structured data)处理的 Spark 模块。 Hive and SparkSQL: Drill,Impala.Shark Shark 是伯克利实验室 Spark 生态环境的组件之一. Shark 的出现,使得 SQL-on-Hadoop 的性能比 Hive 有了 10-100 倍的提高。 Spark-S…...
第十八讲 | 支持向量机(SVM):在地类识别与遥感影像分类中的应用
在遥感影像分类与地类识别中,我们经常面临高维特征、多样地表类型以及样本噪声等挑战。**支持向量机(Support Vector Machine,SVM)**作为一种强大的监督分类方法,因其在小样本、高维特征下依然保持良好泛化能力,被广泛用于遥感影像分析、地类判别及环境监测等领域。 📌…...
5.6 GitHub PR分析爆款方案:分层提示工程+LangChain实战,准确率飙升22%
GitHub Sentinel 分析报告核心模块:Pull Request 提示工程设计与实现 关键词:Pull Request 分析、大模型提示工程、分层结构设计、动态参数注入、LangChain 集成 1. PR 分析需求与技术挑战 在 GitHub 开源项目管理中,Pull Request 分析需满足三个核心需求: #mermaid-svg-…...
centos yum install environment-modules
在 CentOS 系统中,environment-modules 是一个非常有用的包,它允许用户管理和动态地加载环境变量,这对于使用特定模块(例如软件库或编译器工具链的路径)非常方便。如果你想通过 yum 安装 environment-modulesÿ…...
Spring Boot + ShardingSphere 分库分表实战:电商订单场景案例
摘要:本文通过电商系统中订单表分库分表的实际案例,结合Spring Boot和ShardingSphere框架,详细讲解如何实现水平分库分表,解决海量数据存储与查询性能问题。 一、场景分析 在电商系统中,订单表随着业务增长可能面临以…...
C++ 指针从入门到精通实战:全面掌握指针的概念与应用
C 指针从入门到精通实战:全面掌握指针的概念与应用 指针(Pointer)是C中一个极其重要且强大的概念,它赋予了程序员直接操作内存的能力,从而实现高效的代码和复杂的数据结构。然而,指针的使用也伴随着诸多挑…...
C++ 智能指针底层逻辑揭秘:优化内存管理的核心技术解读
目录 0.为什么需要智能指针? 1.智能指针的使用及原理 RAII: 智能指针的原理: 2.智能指针有哪些? std::auto_ptr std::unique_ptr std::shared_ptr std::weak_ptr 0.为什么需要智能指针? 想要回答这个问题&…...
Android基础入门、Android常见界面布局基础练习
第1章 Android基础入门、第2章Android常见界面布局 一. 填空题 1. (填空题)如果希望在XML布局文件中调用颜色资源,可以使用_____调用。 正确答案: (1) color 2. (填空题)Android程序入口的Activity是在_____文件中注册的。 正确答案: (1…...
Spring Cloud主要组件介绍
一、Spring Cloud 1、Spring Cloud技术概览 分为:服务治理,链路追踪,消息组件,配置中心,安全控制,分布式任务管理、调度,Cluster工具,Spring Cloud CLI,测试 2、注册中心:常用注册中心(Euerka[AP]、Zookeeper[CP]) 1)Euerka Client(服务提供者)=》注册=》Eue…...
【7】深入学习Buffer缓冲区-Nodejs开发入门
深入学习Buffer缓冲区 前言ASCII码GBK/GB2312UnicodeJavascript转换 BufferBuffer的作用Buffer的创建Buffer.allocBuffer.allocUnsafe(size)Buffer.allocUnsafeSlow(size)Buffer.from(array)Buffer.from(arrayBuffer[, byteOffset[, length]])Buffer.from(buffer)Buffer.from(s…...
酶动力学参数预测,瓶颈识别……中科院深圳先进技术研究院罗小舟分享AI在酶领域的创新应用
蛋白质,作为生命的基石,在生命活动中发挥着关键作用,其结构和功能的研究,对创新药物研发、合成生物学、酶制剂生产等领域,有着极其重要的意义。但传统蛋白质设计面临诸多难题,蛋白质结构复杂,序…...
Dockerfile
Dockerfile Dockerfile 是一个文本文件,其内包含了一条条指令,每一条指令构建镜像的一层,因此每一条指令的内容,就是描述该层应当如何构建。 定制镜像,可以将镜像制作的每一层的修改、安装、构建、操作的命令…...
Redis高频面试题(含答案)
当然可以,Redis 是面试中非常常见的高频考点,尤其在后台开发、分布式系统、缓存设计等方向,面试官常常通过 Redis 来考察你的高并发处理能力、系统设计能力和对缓存一致性理解。 以下是一些典型 Redis 的面试场景题目类型和你可以如何回答的…...
#3 物联网 的标准
商业化的技术都有标准, 标准的本质就是 可以重复多次实现的方法。而这些方法都是设定物联网的那些人布局的,当然在保证按方法操作的结果是属于物联网这个基本的操作里面,藏着的是对某些利益团队的维护,这里大家知道就可以了。 除 …...
Moviepy 视频编辑的Python库,可调整视频分辨率、格式
MoviePy简介 MoviePy 是一个用于视频编辑的Python库,支持视频剪辑、和合成、转码等多种操作,主要有点: 基于 FFmpeg:能够处理几乎所有常见的视频格式。 修改视频分辨率 方法一:指定新的宽度和高度 from moviepy.editor import V…...
【LeetCode 热题 100】哈希 系列
📁1. 两数之和 本题就是将通过两层遍历优化而成的,为什么需要两层遍历,因为遍历 i 位置时,不知道i-1之前的元素是多少,如果我们知道了,就可以通过两数相加和target比较即可。 因为本题要求返回下标…...
蓝光三维扫描:汽车冲压模具与钣金件全尺寸检测的精准解决方案
随着汽车市场竞争日趋激烈,新车型开发周期缩短,安全性能要求提高,车身结构愈加复杂。白车身由多达上百个具有复杂空间型面的钣金件,通过一系列工装装配、焊接而成。 钣金件尺寸精度是白车身装配精度的基础。采用新拓三维XTOM蓝光…...
鲲鹏+昇腾部署集群管理软件GPUStack,两台服务器搭建双节点集群【实战详细踩坑篇】
前期说明 配置:2台鲲鹏32C2 2Atlas300I duo,之前看网上文档,目前GPUstack只支持910B芯片,想尝试一下能不能310P也部署试试,毕竟华为的集群软件要收费。 系统:openEuler22.03-LTS 驱动:24.1.rc…...
面试篇 - GPT-1(Generative Pre-Training 1)
GPT-1(Generative Pre-Training 1) ⭐模型结构 Transformer only-decoder:GPT-1模型使用了一个12层的Transformer解码器。具体细节与标准的Transformer相同,但位置编码是可训练的。 注意力机制: 原始Transformer的解…...
探索机器人创新技术基座,傅利叶开源人形机器人 Fourier N1
一.傅利叶为什么要开源? 2025年3月17日,傅利叶正式开源全尺寸人形机器人数据集Fourier ActionNet。 2025年4月11日,傅利叶正式发布首款开源人形机器人 Fourier N1。 傅利叶为什么要做这些开源工作呢?4月11日&#x…...
正则表达式和excel文件保存(python)
正则表达式 import re data """ <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8" /> <title>测试页面</title> </head> <body> <h1>《人工智能的发展趋势分析报…...
无人船 | 图解基于视线引导(LOS)的无人艇制导算法
目录 1 视线引导法介绍2 LOS制导原理推导3 Lyapunov稳定性分析4 LOS制导效果 1 视线引导法介绍 视线引导法(Line of Sight, LOS)作为无人水面艇(USV)自主导航领域的核心技术,通过几何制导与动态控制深度融合的机制&am…...
大腾智能获邀出席华为云2025生态大会,携全栈工业软件助力产业智能升级
4月10日-4月11日,以“聚力共创,加速行业智能跃迁”为主题的华为云生态大会2025在安徽芜湖召开。大腾智能受邀出席此次盛会,与众多行业精英、生态伙伴齐聚一堂,深度参与前沿技术演示、生态伙伴签约及商业场景共创,与行业…...
Java基础关键_037_Java 常见新特性
目 录 一、新语法 1.JShell 2.try-with-resources (1)jdk 7 之前 (2)jdk 7 之后 (3)jdk 9 之后 3.局部变量类型判断(不推荐) 4.instanceof 的模式匹配 (1&a…...
鸿蒙公共通用组件封装实战指南:从基础到进阶
一、鸿蒙组件封装核心原则 1.1 高内聚低耦合设计 在鸿蒙应用开发中,高内聚低耦合是组件封装的关键准则,它能极大提升代码的可维护性与复用性。 从原子化拆分的角度来看,我们要把复杂的 UI 界面拆分为基础组件和复合组件。像按钮、输入框这…...
IntelliJ 配置(二)配置相关类库(2)LineMarkerProvider
一、介绍 LineMarkerProvider 是 IntelliJ 平台插件开发中的一个接口,它的作用是在编辑器左侧的“行标记区域”(就是代码行号左边那一栏)添加各种图标、标记或导航链接。比如Java 类中看到的: 小绿色三角形(可以点击运…...
红宝书第四十二讲:Angular核心特性精讲:依赖注入 RxJS整合
红宝书第四十二讲:Angular核心特性精讲:依赖注入 & RxJS整合 资料取自《JavaScript高级程序设计(第5版)》。 查看总目录:红宝书学习大纲 一、依赖注入(Dependency Injection):快…...
AD917X系列JESD204B MODE7使用
MODE7特殊在F8,M4使用2个复数通道 CH0_NCO10MHz CH1_NCO30MHZ DP_NCO50MHz DDS1偏移20MHz DDS2偏移40MHz...
软考高级系统架构设计师-第11章 系统架构设计
【本章学习建议】 根据考试大纲,本章不仅考查系统架构设计师单选题,预计考12分左右,而且案例分析和论文写作也是必考,对应第二版教材第7章,属于重点学习的章节。 软考高级系统架构设计师VIP课程https://edu.csdn.net/…...
中和农信的“三农”服务密码:科技+标准化助力乡村振兴
作为中国农村市场最大的专注服务农村小微客户的“三农”综合服务机构,中和农信凭借多年积累的农村服务经验,成功从单一小额信贷机构转型为覆盖金融、生产、生活及生态服务的综合型“三农”服务平台。近期,中和农信在由中保保险资产登记交易系…...
【Redis】布隆过滤器应对缓存穿透的go调用实现
布隆过滤器 https://pkg.go.dev/github.com/bits-and-blooms/bloom/v3 作用: 判断一个元素是不是在集合中 工作原理: 一个位数组(bit array),初始全为0。多个哈希函数,运算输入,从而映射到位数…...
MyBatis-Plus笔记(下)
注解 tablename注解 - 描述:表名注解,标识实体类对应的表 - 使用位置:实体类 代码举例: TableName//可以不加,使用实体类的名字作为表名!忽略大小写 //BaseMapper->User实体类-》实体类名-》表名数据…...
【项目管理】第14章 项目沟通管理-- 知识点整理
项目管理-相关文档,希望互相学习,共同进步 风123456789~-CSDN博客 (一)知识总览 项目管理知识域 知识点: (项目管理概论、立项管理、十大知识域、配置与变更管理、绩效域) 对应:第6章-第19章 第6章 项目管理概论 4分第13章 项目资源管理 3-4分第7章 项目…...
3个关键数据解密:首航上市如何重构ebay电商新能源供应链?
3个关键数据解密:首航上市如何重构eBay电商新能源供应链? 在跨境电商圈,一个新玩家的崛起往往意味着新的格局变动。2024年,伴随一家名为“首航”的新能源企业在港股成功上市,整个eBay类目的供应链悄然掀起新一轮洗牌。…...
《华为云Node.js部署:从开发环境到生产上线的完整指南》
目录 引言第一步: 重置密码第二步:连接到服务器第三步:安装必要软件第四步:创建项目目录第五步:将代码上传到服务器1、安装 FileZilla2、打开FileZilla,连接到您的服务器:3、连接后,…...
【网络原理】TCP/IP协议五层模型
目录 一. 协议的分层 二. OSI七层网络协议 三. TCP/IP五层网络协议 四. 网络设备所在分层 五. 封装 六. 分用 七. 传输中的封装和分用 八. 数据单位术语 一. 协议的分层 常见的分层为两种OSI七层模型和TCP/IP五层模型 为什么要协议分层? 在网络通信中&…...
Asp.Net Core学习随笔
学习自BLBL杨中科老师 依赖注入(Dependency Injection) 依赖注入是实现控制反转(Inversion Of Control 即IOC)的一种方式(还有一种叫服务定位器的实现,但是不如依赖注入好用),软件开发中实现解耦常用的方式. 比如吃饭 1. 传统写法(没有DI,紧耦合&a…...
基于PHP的酒店网上订房系统(源码+lw+部署文档+讲解),源码可白嫖!
摘要 酒店服务是旅游行业的一个重要组成部分,它的作用已经从过去的单一的住宿、结算帐务向全面、高水平的服务型酒店转变。酒店的服务工作贯穿于整个酒店的市场营销、预定、入住、退房、结账等环节,酒店要提高整体工作水平,简化工作程序&…...
《MySQL从入门到精通》
文章目录 《MySQL从入门到精通》1. 基础-SQL通用语法及分类2. 基础-SQL-DDL-数据库操作3. 基础-SQL-DDL-表操作-创建&查询4. 基础-SQL-DDL-数据类型及案例4.1 数值类型4.2 字符串类型4.3 时间和日期类型 5. 基础-SQL-DDL-表操作-修改&删除5.1 DDL-表操作-修改5.2 DDL-表…...
MySQL聚合查询
聚合查询 group by...
生信初学者教程(三十四):文章的方法
文章目录 介绍数据收集和整理数据整合差异基因分析功能富集分析免疫浸润分析候选标记物识别诊断ROC曲线单细胞分析统计方法介绍 在数据分析进行的同时,我们可以逐步撰写方法部分,确保其与结果紧密相连。一旦结果部分完成,方法部分应根据结果的逻辑顺序进行分类和组织。在描…...
算力云平台部署—SadTalker的AI数字人视频
选择算力 部署选择 选择镜像 机器管理 控制台 通过平台工具进入服务器 认识管理系统 打开命令行 进入目录 stable-diffusion-webui# cd 增加执行权限 chmod x ./webui.sh 运行命令 bash ./webui.sh sudo apt install -y python3 python3-venv git 安装软件 Creating the …...
iPhone相册导出到电脑的完整指南
iPhone相册导出到电脑的完整指南 本文介绍通过数据线连接实现iPhone照片视频传输到电脑的标准操作方法,适用于需要备份移动设备影像资料的用户。 环境准备 使用原装Lightning或USB-C数据线连接设备与电脑需在电脑端安装设备管理工具(如克魔助手&#…...
【数据结构】励志大厂版·初阶(复习+刷题):复杂度
前引:从此篇文章开始,小编带给大家的是数据结构初阶的刷题讲解 ,此类文章将简略的包含相关知识,详细的思路拆分讲解,分析每一题的难点、易错点,看见题目如何分析,以上就是小编预备的内容&#x…...
Nginx底层架构(非常清晰)
目录 前言: 场景带入: HTTP服务器是什么? 反向代理是什么? 模块化网关能力: 1.配置能力: 2.单线程: 3.多worker进程 4.共享内存: 5.proxy cache 6.master进程 最后&…...
Golang|Channel 相关用法理解
文章目录 用 channel 作为并发小容器channel 的遍历channel 导致的死锁问题用 channel 传递信号用 channel 并行处理文件用channel 限制接口的并发请求量用 channel 限制协程的总数量 用 channel 作为并发小容器 注意这里的 ok 如果为 false,表示此时不仅channel为空…...
智能合约安全审计平台——以太坊虚拟机安全沙箱
目录 以太坊虚拟机安全沙箱 —— 理论、设计与实战1. 引言2. 理论背景与安全原理2.1 以太坊虚拟机(EVM)概述2.2 安全沙箱的基本概念2.3 安全证明与形式化验证3. 系统架构与模块设计3.1 模块功能说明3.2 模块之间的数据流与安全性4. 安全性与密码学考量4.1 密码学保障在沙箱中…...
趣说区块链隐私智能合约Shielder 实现原理
目录 核心理念 Deposit Withdraw Shielder 是 Aleph Zero 上的智能合约,它利用 zk-SNARK 技术实现隐私支付以及与 DeFi 的隐私交互。这与常规区块链的完全透明性形成鲜明对比,常规区块链允许追踪单个用户与链上合约以及其他用户的所有交互。Shielder 通过使第三方链观察者…...
TCPIP详解 卷1协议 五 Internet协议
5.1——Internet协议 IP是TCP/IP协议族中的核心协议。所有TCP、UDP、ICMP和IGMP数据都通过IP数据报传输。IP 提供了一种尽力而为、无连接的数据报交付服务。“尽力而为”的含义是不保证 IP 数据报能成功到达目的地。任何可靠性必须由上层(例如TCP)提供。…...