5、docker镜像管理命令

1、命令总览

命令(含关键参数)作用出现频率备注
docker buildx build --platform … -t … --push .一次构建并推送多平台镜像高频需先 docker buildx create --use
docker buildx build -o type=docker,dest=xxx.tar .构建后离线导出 tar 包中频只导出单平台;tar 可 U 盘带走
docker save -o xxx.tar img1:tag img2:tag …把已有镜像打包成 tar中频不依赖 buildx;支持多镜像一次性打包
docker load -i xxx.tar从 tar 恢复镜像到本地中频与 save 配对使用;自动恢复 tag
docker tag SOURCE[:TAG] TARGET[:TAG]给镜像打新名字/标签高频打标签后可直接 push
docker rmi 镜像ID/仓库:标签 …删除一个或多个镜像高频加 -f 可强制删除正被容器引用的镜像
docker image prune -a -f清理所有未被使用的镜像中频-a 会删除所有悬空+未使用镜像,慎用
docker history 镜像[:TAG]查看镜像分层历史低频排查“镜像为什么这么大”时很有用

2、docker   buildx*    

2.1、Docker build

命令作用出现频率备注
docker build -t <image_name>:<tag> .根据当前目录中的 Dockerfile 生成镜像高频构建镜像的基本命令
docker build -t myapp:v1 .构建镜像并标记为 myapp:v1高频提供镜像的名称和版本标签
docker build -t myImage -f demo/Dockerfile使用指定目录中的 Dockerfile 构建镜像中频适用于 Dockerfile 不在当前目录的情况
# 构建镜像并标记为 myapp:v1
docker build -t myapp:v1 .# 构建指定标签的 Docker 镜像
docker build -t myImage:v0.1.0 .# 使用指定目录中的 Dockerfile 构建映像
docker build -t myImage -f demo/Dockerfile

2.2、docker buildx create

命令作用出现频率备注
docker buildx create --name <builder_name>创建一个新的 builder 实例中频可以指定 builder 的名称
docker buildx create --name <builder_name> --driver docker-container创建使用 Docker 容器作为驱动的 builder 实例中频适用于需要远程构建的场景
docker buildx create --name <builder_name> --driver kubernetes在 Kubernetes 集群中创建 builder 实例低频需要 Kubernetes 环境支持
docker buildx create --name <builder_name> --bootstrap创建并自动启动 builder 实例中频简化创建和启动流程
docker buildx create --name <builder_name> --use创建新的 builder 并将其设为默认高频之后的所有构建命令将使用此 builder
# 创建一个新的名为 mybuilder 的 builder 实例
docker buildx create --name mybuilder# 创建使用 Docker 容器作为驱动的 builder 实例
docker buildx create --name mybuilder --driver docker-container# 创建并自动启动 builder 实例
docker buildx create --name mybuilder --bootstrap# 创建新的 builder 并将其设为默认
docker buildx create --name mybuilder --use# 创建一个自定义 builder 实例并立即激活
docker buildx create --name mybuilder --use

2.3、docker buildx use

命令作用出现频率备注
docker buildx use <builder_name>切换到指定的 builder 实例高频切换后所有构建命令将使用此 builder
docker buildx use --name <builder_name>切换到指定名称的 builder 实例中频需要指定 builder 的名称
docker buildx use --use将当前 builder 设为默认中频后续命令无需指定 builder 名称
docker buildx use --bootstrap创建并切换到新的 builder 实例中频适用于需要快速创建并使用新 builder 的场景
docker buildx use --list列出所有可用的 builder 实例低频显示当前所有 builder 的名称和状态
# 切换到名为 mybuilder 的 builder 实例
docker buildx use mybuilder# 切换到名为 mybuilder 的 builder 实例,并将其设为默认
docker buildx use --name mybuilder --use# 创建新的 builder 实例并立即切换到它
docker buildx use --bootstrap# 列出所有可用的 builder 实例
docker buildx use --list# 切换到默认的 builder 实例
docker buildx use default

2.4、docker buildx ls

命令作用出现频率备注
docker buildx ls列出所有可用的 builder 实例中频显示所有 builder 的名称、状态和节点信息
docker buildx ls -q仅列出 builder 实例的名称低频适合脚本处理,输出名称列表
docker buildx ls --quiet同上,仅输出 builder 名称低频等同于 -q
docker buildx ls --format "table {{.Name}}\t{{.DriverName}}"自定义输出格式低频根据需要显示不同信息
# 列出所有可用的 builder 实例及其详细信息
docker buildx ls# 仅列出所有 builder 的名称
docker buildx ls -q# 列出 builder 名称和使用的驱动名称
docker buildx ls --format "table {{.Name}}\t{{.DriverName}}"# 列出所有 builder,包括详细信息
docker buildx ls --all

2.5、docker buildx build

命令作用出现频率备注
docker buildx build使用 BuildKit 构建镜像高频默认使用当前激活的 builder
--platform指定目标平台(架构/操作系统)高频支持多平台构建
--push构建完成后推送到注册中心高频需要先登录
--output指定构建产物输出中频支持导出为 tar 或其他格式
--no-cache构建时不使用缓存中频强制重新构建所有层
--load构建完成后将镜像导入本地环境中频适用于不想推送到远程的场景
--build-arg传递构建参数中频动态定义环境变量
-标签构建时设置镜像标签中频可以设置版本标签
# 使用当前激活的 builder 构建镜像
docker buildx build -t myimage:latest .# 指定目标平台构建并推送镜像
docker buildx build --platform linux/amd64,linux/arm64 -t myregistry/myimage:latest --push .# 构建完成后将镜像导入本地环境
docker buildx build -t myimage:latest --load .# 构建时不使用缓存,强制重新构建所有层
docker buildx build --no-cache -t myimage:latest .# 构建时传递构建参数
docker buildx build --build-arg HTTP_PROXY=http://proxy:8080 -t myimage:latest .# 构建并导出为 tar 文件
docker buildx build -t myimage:latest -o type=docker,dest=myimage.tar .

2.6、docker buildx bake

命令作用出现频率备注
docker buildx bake基于文件进行构建中频允许用户在一个命令中定义多个构建配置和目标平台,实现自动化批量构建和发布跨平台镜像
docker buildx bake -f <文件>指定构建定义文件高频支持 HCL、JSON 或 YAML 文件格式
docker buildx bake <目标>构建指定目标高频可以指定一个或多个目标进行构建
docker buildx bake --push构建完成后推送到注册中心中频需要先登录
docker buildx bake --load构建完成后将镜像导入本地环境中频适用于不想推送到远程的场景
docker buildx bake --no-cache构建时不使用缓存中频强制重新构建所有层
docker buildx bake --set <覆盖配置>覆盖目标值中频例如 targetpattern.key=value
# 构建所有目标
docker buildx bake# 构建特定目标
docker buildx bake myapp# 构建特定目标并推送
docker buildx bake --push myapp# 构建特定目标并导入到本地环境
docker buildx bake --load myapp# 构建特定目标不使用缓存
docker buildx bake --no-cache myapp# 构建特定目标并覆盖配置
docker buildx bake --set "myapp.tags=latest" myapp

2.7、docker buildx inspect

命令作用出现频率备注
docker buildx inspect显示指定 builder 实例的详细信息低频包括节点信息、支持的平台等
--format定制输出格式低频用于脚本处理,输出特定信息
# 显示名为 mybuilder 的 builder 实例的详细信息
docker buildx inspect mybuilder# 以 JSON 格式输出 builder 实例的信息,便于脚本处理
docker buildx inspect mybuilder --format "{{json .}}"# 仅输出 builder 实例的节点信息
docker buildx inspect mybuilder --format "{{json .Node }}"

2.8、docker buildx du

命令作用出现频率备注
docker buildx du显示当前所选构建器的磁盘使用情况中频包括缓存条目的 ID、大小以及最后访问时间。末尾的 TOTAL 行表示当前构建器的构建缓存占用的总磁盘空间。
--filter提供过滤值低频用于过滤输出结果
--verbose提供更详细的输出中频显示可变和共享状态,以及有关相应层的附加信息
--builder覆盖配置的构建器实例中频检查特定构建器的磁盘使用情况
# 查看当前构建器的磁盘使用情况
docker buildx du# 使用详细输出来检查磁盘使用记录
docker buildx du -v# 检查特定构建器实例的磁盘使用情况
docker buildx du --builder mybuilder

2.9、docker buildx prune

命令作用出现频率备注
docker buildx prune清理构建缓存中频包括内部镜像和未使用的构建缓存条目
docker buildx prune --filter根据条件筛选清理低频可以指定时间、类型等条件进行筛选清理
docker buildx prune --keep-storage清理至特定存储大小低频保留指定大小的构建缓存
docker buildx prune --all清理所有构建缓存低频包括内部镜像和所有构建缓存条目
# 清理所有构建缓存
docker buildx prune# 清理所有构建缓存,包括内部镜像
docker buildx prune --all# 清理构建缓存,保留最近5分钟的数据
docker buildx prune --filter "until=5m"# 清理构建缓存,保留1GB的存储空间
docker buildx prune --keep-storage 1g

2.10、docker buildx stop

命令作用出现频率备注
docker buildx stop <builder>停止指定的 builder 实例中频停止 builder 实例,释放资源
docker buildx stop --all停止所有 builder 实例低频一次性停止所有 builder 实例
# 停止名为 mybuilder 的 builder 实例
docker buildx stop mybuilder# 列出所有 builder 实例并停止
docker buildx ls -q | xargs -n 1 docker buildx stop# 停止所有 builder 实例
docker buildx stop --all

2.11、docker buildx rm

命令作用出现频率备注
docker buildx rm <builder>删除指定的 builder 实例中频删除后无法再使用该实例
docker buildx rm --all删除所有 builder 实例低频一次性删除所有 builder 实例
docker buildx rm -f <builder>强制删除指定的 builder 实例中频即使 builder 正在运行也会被删除
# 删除名为 mybuilder 的 builder 实例
docker buildx rm mybuilder# 强制删除名为 mybuilder 的 builder 实例(如果正在运行也会被删除)
docker buildx rm -f mybuilder# 删除所有 builder 实例
docker buildx rm --all

2.12、docker buildx imagetools

命令作用出现频率备注
docker buildx imagetools create创建新的镜像低频合并多个源镜像内容,常用于构建复杂应用
docker buildx imagetools inspect检查 Docker 镜像的详细信息中频包括单平台和多平台镜像的配置、分层结构和元数据
# 使用 docker buildx imagetools create 命令创建新镜像
docker buildx imagetools create my-multi-stage-image:latest ~/project# 检查单平台 Docker 镜像的详细信息
docker buildx imagetools inspect hello-world# 检查多平台 Docker 镜像的详细信息
docker buildx imagetools inspect alpine

3、docker save

命令作用出现频率备注
docker save -o xxx.tar IMAGE[:TAG]…把本地镜像打包成 tar 归档中频不依赖网络,离线/内网分发必备
docker save IMAGE… | gzip > xxx.tar.gz打包并实时压缩低频节省磁盘与传输带宽
docker save IMAGE | docker load管道直连,无需中间文件低频两台机器都有 Docker 时最快速
docker save --help查看全部参数极低参数很少,几乎用不到其它选项
# ---------- docker save 常用示例 ----------
# 1) 打包单个镜像
docker save -o nginx_alpine.tar nginx:alpine# 2) 一次打包多个镜像到一个 tar
docker save -o web_cache.tar redis:7 alpine:3.18# 3) 打包并实时压缩
docker save nginx:alpine | gzip > nginx_alpine.tar.gz# 4) 管道直连:A 机器 → B 机器,无需中间文件
docker save myapp:latest | ssh user@192.168.1.100 "docker load"# 5) 查看 tar 包里包含哪些镜像
tar -tf web_cache.tar | grep "\.json" | head

4、docker   load

       Load an image from a tar archive or STDIN

命令作用出现频率备注
docker load -i xxx.tar从 tar 归档导入镜像(含 tag)高频与 docker save 配套
docker load < xxx.tar重定向导入(同上)中频写法差异,效果一致
docker load --quiet静默导入低频CI/CD 日志更干净
docker load(管道用法)直接接收 stdin 流低频

可结合 ssh/curl 实现无文件传输

# ---------- docker load 常用示例 ----------
# 1) 从本地 tar 导入镜像
docker load -i web_cache.tar# 2) 重定向导入(效果同上)
docker load < web_cache.tar# 3) 静默导入(不输出详细进度)
docker load --quiet -i web_cache.tar# 4) 管道直连:远程机器把 tar 流过来直接 load
ssh user@192.168.1.100 "cat /tmp/web_cache.tar" | docker load# 5) 解压并导入(tar.gz 场景)
gunzip -c web_cache.tar.gz | docker load

5、docker   tag

        Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE

命令作用出现频率备注
docker tag <src[:tag]> <dst[:tag]>为本地镜像创建新名字/标签高频仅创建引用,不拷贝数据
docker tag <imageID> <dst[:tag]>按 ID 打标签中频适合无原标签场景
docker tag <src> <registry>/repo:<ver>给推送仓库做准备高频推送前必做
# ---------- docker tag 常用示例 ----------
# 1) 为已有镜像 nginx:alpine 创建本地新标签
docker tag nginx:alpine mynginx:latest# 2) 按镜像 ID 打标签(假设 ID 为 1a2b3c4d)
docker tag 1a2b3c4d myapp:v1.0.0# 3) 为推送私有仓库打标签
docker tag myapp:v1.0.0 harbor.example.com/library/myapp:v1.0.0# 4) 一次镜像多版本标签(方便回滚)
docker tag myapp:v1.0.0 myapp:stable
docker tag myapp:v1.0.0 myapp:1.0
docker tag myapp:v1.0.0 myapp:latest# 5) 批量重命名脚本示例(把旧仓库名统一换成新仓库名)
for t in $(docker images --format '{{.Repository}}:{{.Tag}}' | grep '^oldrepo/'); donew_name=$(echo "$t" | sed 's#^oldrepo/#newrepo/#')docker tag "$t" "$new_name"
done

6、docker rmi  

      Remove one or more images

命令作用出现频率备注
docker rmi <镜像:标签>按仓库名+标签删除镜像高频删除所有同名标签即删除镜像
docker rmi <IMAGE_ID>按镜像 ID 删除高频ID 可简写前 3 位以上
docker rmi -f <镜像>强制删除(含正在运行的容器)中频会先停止并删除相关容器
docker rmi $(docker images -q)批量删除所有本地镜像低频危险!请确认无重要数据
# ---------- docker rmi 常用示例 ----------
# 1) 删除单个镜像(按仓库:标签)
docker rmi nginx:alpine# 2) 删除单个镜像(按镜像 ID,前 4 位即可)
docker rmi 7d8e# 3) 强制删除(即使有容器正在使用)
docker rmi -f myapp:latest# 4) 一次删除多个镜像
docker rmi redis:7 alpine:3.18 busybox:1.35# 5) 批量删除所有“悬空”镜像(<none>:<none>)
docker rmi $(docker images -f "dangling=true" -q)# 6) 危险!一次性清空本地所有镜像(慎用)
# docker rmi $(docker images -q)

7、docker   image

   Manage images

子命令作用出现频率备注
docker image ls列出本地镜像高频可简写 docker images
docker image rm <镜像>删除指定镜像高频与 docker rmi 等价
docker image prune [-a -f]清理未被使用的镜像中频-a 包含非悬空镜像
docker image inspect <镜像>查看镜像元数据中频JSON 格式,调试利器
docker image history <镜像>查看镜像分层历史低频排查镜像大小来源
docker image tag给镜像打标签低频与 docker tag 等价
# ---------- docker image 常用示例 ----------
# 1) 列出本地镜像(简洁格式)
docker image ls# 2) 仅显示镜像 ID(脚本用)
docker image ls -q# 3) 删除指定镜像
docker image rm nginx:alpine# 4) 强制批量删除所有悬空镜像
docker image prune -f# 5) 强制删除所有未被容器引用的镜像(慎用)
docker image prune -a -f# 6) 查看镜像完整元数据
docker image inspect nginx:alpine# 7) 查看镜像分层历史(带大小)
docker image history --no-trunc nginx:alpine# 8) 给镜像打标签(与 docker tag 等价)
docker image tag nginx:alpine harbor.example.com/library/nginx:v1

8、docker history

    Show the history of an image

命令作用出现频率备注
docker history <镜像>查看镜像分层历史中频快速定位“镜像为何这么大”
--no-trunc显示完整命令低频解决输出被截断
--format自定义输出低频用于脚本或统计
# ---------- docker history 常用示例 ----------
# 1) 查看镜像分层历史(默认表格式)
docker history nginx:alpine# 2) 显示完整命令(不被截断)
docker history --no-trunc nginx:alpine# 3) 仅查看镜像 ID 与大小(脚本友好)
docker history --format "table {{.ID}}\t{{.Size}}" nginx:alpine# 4) 按层大小排序(由大到小)
docker history --format "{{.Size}}\t{{.CreatedBy}}" nginx:alpine | sort -hr# 5) 配合 jq 统计总大小(需安装 jq)
docker history --format '{{json .}}' nginx:alpine | jq -s 'map(.Size | tonumber) | add' | numfmt --to=iec

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

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

相关文章

阿里云ECS云服务器临时升级带宽方法

阿里云ECS云服务器临时升级带宽方法一、背景与需求二、原理三、操作步骤步骤 0: 准备工作步骤 1: 创建弹性网卡 (ENI)步骤 2: 创建并绑定弹性公网IP (EIP)步骤 3: SSH登录ECS并切换到高速通道 (eth1)步骤 4: 执行你的高带宽任务步骤 5: 任务完成&#xff0c;切回默认网卡 (eth0…

Java语言简介

一.Java语言的起源 Java语言的前身是Oka语言,是美国Sun Microsystems公司于1991年推出的,仅限于公司内部使用的语言。1995年,Sun公司将Oak语言更名为Java语言,并正式向公众推出。这之后,Java语言不断更新,其类库越来越丰富,性能逐步提升,应用领域也显著拓展,已成为当今…

VUE+SPRINGBOOT从0-1打造前后端-前后台系统-视频列表与视频播放

在现代Web开发中&#xff0c;视频播放功能已成为许多网站的基本需求。本文将基于Vue.js框架&#xff0c;详细讲解如何实现一个视频列表与播放器交互的功能模块。这个组件可以让用户点击列表中的视频项来播放对应的视频&#xff0c;并支持再次点击关闭播放器。功能概述我们实现的…

详解 Seaborn:让数据可视化更简单高效的 Python 库

在数据科学领域&#xff0c;可视化是理解数据、挖掘规律的重要手段。今天要为大家介绍的 Seaborn 库&#xff0c;正是数据可视化领域的一把 “利器”。它基于 Matplotlib 开发&#xff0c;却凭借更简洁的接口和更美观的默认样式&#xff0c;成为众多数据分析师的首选工具。下面…

Cesium1.95中如何高效管理 1500 个高频实体

一、建议&#xff1a;不要频繁创建/销毁&#xff0c;而是复用对象&#xff1b;​​​​使用 CallbackProperty更新位置而不是删了重建&#xff1b;​​​​对大量 Billboard / Polyline / Label&#xff0c;优先使用对应的 *Collection&#xff0c;然后批量更新&#xff1b;​​…

全面了解机器语言之kmeans

深入理解 KMeans 聚类算法&#xff1a;原理、实现与应用在机器学习领域&#xff0c;聚类算法作为无监督学习的核心技术之一&#xff0c;一直以来都是数据挖掘和模式识别的重要工具。其中&#xff0c;KMeans 算法以其简洁的原理、高效的计算性能和广泛的适用性&#xff0c;成为最…

纳米陶瓷与光子集成:猎板PCB定义下一代VR硬件的技术蓝图

虚拟现实&#xff08;VR&#xff09;设备正从“视觉沉浸”向“多感官无感交互”演进&#xff0c;其底层PCB技术面临带宽、算力密度与动态可靠性的三重挑战。作为国内高端PCB技术的引领者&#xff0c;​​猎板PCB​​以材料革新、光电子融合与智能响应为核心&#xff0c;构建了适…

Linux ssh-keygen系列命令与ssh命令的使用

关联文章 Linux ssh 免密登录配置&#x1f44d;对日开发 TeraTerm 批量向各台服务器传输文件SSH 教程&#x1f44d;&#x1f44d;&#x1f44d;&#x1f44d;&#x1f44d;&#x1f44d; 目录一. ssh-keygen相关命令1.1 简介1.2 生成密钥1.3 ssh-copy-id 上传公钥到指定的服务…

从C++0基础到C++入门 (第二十五节:指针【所占内存空间】)

目录 一. 指针所占内存空间 1.1 验证指针大小的代码示例 1.2 不同系统架构下的差异 1.3 指针大小与类型无关 1.4 空指针的大小 1.5 多级指针的大小 1.6 实际应用中的注意事项 一. 指针所占内存空间 指针在内存中占用的空间大小取决于系统架构和编译环境。 32位系统中指…

Windows选择文件自动删除及输入框自动打字的解决办法

觉得有帮助麻烦您动动发财的小手点赞、收藏、加关注&#xff0c;感谢&#xff01; 运行环境&#xff1a;windows10 现象&#xff1a;鼠标点击任何文件&#xff0c;上下键选择任何文件都会自动放入回收站并弹警告框&#xff0c;鼠标放入输入框会自动打一串字符&#xff0c;删除…

大模型 MCP服务案例详细讲解

大模型与 MCP(Model Context Protocol)服务器的交互是一个双向、异步、流式的过程,涉及协议解析、函数调用、实时数据交换等关键环节。下面我将详细解释整个交互流程,结合具体示例和时序图说明。 🔄 核心交互流程图 #mermaid-svg-Adxo4FoP4oRzAJdV {font-family:"tr…

MVCC和日志

MVCC是一种并发控制的方法&#xff0c;在数据库管理系统中&#xff0c;实现对数据库的并发访问&#xff0c;在编程语言中实现事务内存主要是为了提高数据库并发性能&#xff0c;更好的处理读写冲突&#xff0c;做到即使有读写冲突时&#xff0c;也能做到不加锁&#xff0c;非阻…

Redis源码安装 Failed to configure LOCALE for invalid locale name 报错解决

源码安装之后 报错 Failed to configure LOCALE for invalid locale name原因是redis 8.0 需要配置字符集 只需要在环境变量中添加 LANGen_US.utf8 即可&#xff0c; 在配置之前先查看当前系统中存在哪些字符集 locale -a然后在 /etc/profile 环境变量中添加配置 LANGen_US.ut…

跑酷小游戏2.0

emm&#xff0c;下面是1.0版本的&#xff0c;我问了下AI&#xff0c;出了第四关&#xff0c;按步骤更新吧。其实是我也搞不懂AI在说啥//跑酷游戏C版 #include<bits/stdc.h> #include<windows.h> #include<stdio.h> #include<conio.h> #include<tim…

相比于传统的全波分析,特征模分析具有哪些优点

相比传统的全波分析&#xff08;Full-Wave Analysis&#xff0c;直接求解电场/电流分布&#xff09;&#xff0c;特征模分析&#xff08;Characteristic Mode Analysis&#xff0c;CMA&#xff09;的优点主要体现在物理可解释性、设计指导性和计算效率三个方面。1. 物理机理更清…

UE材质World Position 和 Object Position

Object Position 是 物体原点在世界坐标系下的位置 World Position 是 物体上的这个点 在世界坐标系下的位置 Actor Position 是 物体轴点位置 WorldPosition - ObjectPosition 是一个从物体原点&#xff08;pivot&#xff09;指向物体上该点的向量&#xff08;方向&#x…

github上传文件

git remote add origin https://github.com/Ineedstrong/socket-practice.git如果不行的情况下git remote set-url origin gitgithub.com:Ineedstrong/socket-practice.git就以这种方式3. 使用 SSH 替代 HTTPS&#xff08;推荐&#xff09;绕过 HTTPS 的 TLS 问题&#xff1a;生…

【STM32U385RG 测评】基于VSCode的STM32开发环境搭建

【STM32U385RG 测评】搭建基于VSCode的STM32开发环境 文章目录【STM32U385RG 测评】搭建基于VSCode的STM32开发环境一、安装软件1.1 安装VSCode1.2 安装STM32CubeMX1.3 安装STM32CubeCLT1.4 安装ST-MCU-FINDER-PC二、安装插件2.1 安装 STM32Cube for VSCode插件三、创建项目3.1…

设计模式(二)——策略模式

一、基本概念 既然你已经接触到了设计模式&#xff0c;那你大概率你写过类似这样的代码&#xff1a;根据不同的选择条件&#xff08;如排序、搜索或路由&#xff09;执行不同的代码逻辑。通常的解决方案是使用if-else或switch语句&#xff0c;但这些条件判断有一个最大的问题是…

MySQL基础知识总结

一、MySQL简述 数据库 是一个有组织的集合&#xff0c;用于存储和管理数据的系统。它是一个软件系统&#xff0c;被设计用来存储、检索和管理数据&#xff0c;并提供数据的快速访问和处理。数据库可以被看作是一种特殊的文件系统&#xff0c;但与传统的文件系统不同的是&#…