Docker 常用命令基础详解(一)

news2025/2/21 22:18:18

一、Docker 初相识

在当今数字化时代,软件开发和部署的效率与灵活性成为了关键因素。Docker,作为一款开源的应用容器引擎,犹如一颗璀璨的明星,照亮了软件开发与部署的道路,为开发者们带来了前所未有的便利。它就像是一个神奇的 “集装箱”,可以将应用程序及其所有的依赖项打包在一起,形成一个独立的、可移植的运行环境。无论你是在开发、测试还是生产环境中,Docker 都能确保你的应用程序稳定运行,就像在一个 “密封舱” 里一样,不受外界环境的干扰。

(一)Docker 的独特优势

  1. 轻量级与高效性:与传统的虚拟机相比,Docker 容器的启动速度极快,几乎可以瞬间启动,而虚拟机的启动则需要数分钟的时间。这就好比你要出门,Docker 容器就像穿上一件轻便的外套,瞬间就能出发;而虚拟机则像穿上厚重的铠甲,准备时间漫长。此外,Docker 容器的资源占用极少,多个容器可以共享同一宿主机的内核,大大提高了资源的利用率。就像在一个大房子里,Docker 容器可以巧妙地利用每一寸空间,而虚拟机则像一个个巨大的房间,占据了大量的空间。
  1. 一致性与可移植性:Docker 容器确保了应用程序在不同环境中的一致性。无论你是在本地开发环境、测试环境还是生产环境中运行,应用程序的行为都是一致的。这就好比你制作了一个精美的蛋糕,无论你把它放在哪个厨房里展示,它的味道和外观都是一样的。而且,Docker 容器可以轻松地在不同的操作系统和基础设施之间移植,让你的应用程序可以在任何地方运行,就像一个万能的 “旅行家”。
  1. 快速部署与迭代:使用 Docker,你可以快速地部署和更新应用程序。通过简单的命令,你就可以创建、启动和停止容器,大大缩短了应用程序的部署时间。这就好比你在搭建一个乐高积木城堡,Docker 就像一个神奇的工具,让你可以快速地搭建和修改城堡,而不需要花费大量的时间和精力。

(二)Docker 的广泛应用场景

  1. 开发与测试环境:在开发和测试过程中,Docker 可以帮助开发者快速搭建和管理开发环境。每个开发人员都可以拥有自己独立的开发环境,避免了因环境差异而导致的问题。这就好比每个开发者都有自己的专属实验室,里面的设备和工具都是一样的,不会因为环境的不同而影响实验结果。
  1. 持续集成与持续部署(CI/CD):Docker 与 CI/CD 工具的完美结合,实现了自动化的构建、测试和部署过程。每次代码更新时,Docker 可以自动构建新的容器,并将其部署到生产环境中,大大提高了软件开发的效率和质量。这就好比一个高效的生产线,每个环节都紧密相连,自动化地完成产品的生产和交付。
  1. 微服务架构:在微服务架构中,每个微服务都可以独立地打包成一个 Docker 容器,实现了服务的独立部署、扩展和管理。这就好比一个大型的商场,每个店铺都是一个独立的个体,可以自由地调整经营策略和布局,而不会影响到其他店铺的运营。

(三)掌握 Docker 命令的重要性

要充分发挥 Docker 的强大功能,掌握其常用命令是至关重要的。这些命令就像是开启 Docker 宝藏的钥匙,让你能够轻松地管理容器、构建镜像、进行网络配置等操作。无论是创建和启动容器,还是管理镜像和仓库,每一个命令都有其独特的用途和魅力。接下来,让我们一起深入探索 Docker 的常用命令,开启这段精彩的技术之旅吧!

二、Docker 基础命令

2.1 查看版本信息

在使用 Docker 时,了解其版本信息是很有必要的,这有助于我们确定所使用的功能是否可用,以及排查一些与版本相关的问题。查看 Docker 版本信息的命令非常简单,只需在终端中输入:

 

docker version

执行该命令后,你会看到类似如下的输出:

 

Client:

Version: 20.10.12

API version: 1.41

Go version: go1.16.12

Git commit: e91ed57

Built: Mon Dec 13 11:45:04 2021

OS/Arch: linux/amd64

Context: default

Experimental: true

Server:

Engine:

Version: 20.10.12

API version: 1.41 (minimum version 1.12)

Go version: go1.16.12

Git commit: 459d0df

Built: Mon Dec 13 11:43:49 2021

OS/Arch: linux/amd64

Experimental: false

containerd:

Version: 1.4.12

GitCommit: 7b11cfaabd73bb80907dd23182b9347b4245eb5d

runc:

Version: 1.0.3

GitCommit: v1.0.3-0-gf46b6ba

docker-init:

Version: 0.19.0

GitCommit: de40ad0

从输出中可以看到,它分别展示了客户端(Client)和服务端(Server)的版本信息,包括版本号、API 版本、Go 版本、Git 提交信息、构建时间、操作系统和架构等。这就像是我们购买了一款软件,查看版本信息可以让我们了解这个软件的 “生产日期” 和 “配置参数”,以便更好地使用它。

2.2 获取帮助文档

当我们对某个 Docker 命令不太熟悉,或者想了解某个命令的具体用法和参数时,Docker 提供的帮助文档就像是一位贴心的 “小助手”,随时为我们答疑解惑。获取 Docker 整体帮助文档的命令如下:

 

docker --help

执行该命令后,你会看到一个非常详细的帮助页面,它列出了 Docker 的所有命令以及一些通用选项。例如,你可以看到管理命令(Management Commands),如 builder、config、container 等,以及普通命令(Commands),如 attach、build、commit 等。每个命令后面都有简短的描述,让你对其功能有一个初步的了解。这就好比你拿到了一本厚厚的使用说明书,虽然内容很多,但它能帮助你全面了解这个工具的各种功能。

如果你想获取某个具体命令的帮助文档,比如docker run命令,只需在命令后面加上--help,如下所示:

 

docker run --help

这样,你就会得到关于docker run命令的详细帮助信息,包括该命令的用法、各种选项及其含义。例如,--name选项用于为容器指定一个名称,-d选项用于在后台运行容器并返回容器 ID 等。通过查看这些详细的帮助信息,我们可以更准确地使用命令,避免因为参数错误而导致的问题。

2.3 了解系统状态

要全面了解 Docker 系统的运行状态,我们可以使用docker info命令。这个命令就像是一个 “系统探测器”,它会收集并展示 Docker 系统的各种详细信息,包括镜像数量、容器数量、存储驱动、网络配置等。在终端中输入以下命令:

 

docker info

执行后,你会看到类似如下的输出:

 

Containers: 3

Running: 1

Paused: 0

Stopped: 2

Images: 5

Server Version: 20.10.12

Storage Driver: overlay2

Backing Filesystem: extfs

Supports d_type: true

Native Overlay Diff: true

userxattr: false

Logging Driver: json-file

Cgroup Driver: cgroupfs

Cgroup Version: 1

Plugins:

Volume: local

Network: bridge host ipvlan macvlan null overlay

Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog

Swarm: inactive

Runtimes: runc

Default Runtime: runc

Init Binary: docker-init

containerd version: 7b11cfaabd73bb80907dd23182b9347b4245eb5d

runc version: v1.0.3-0-gf46b6ba

init version: de40ad0

Security Options:

seccomp

Profile: default

Kernel Version: 5.10.0-10-amd64

Operating System: Debian GNU/Linux 11 (bullseye)

OSType: linux

Architecture: x86_64

CPUs: 2

Total Memory: 3.855GiB

Name: your-hostname

ID: XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX

Docker Root Dir: /var/lib/docker

Debug Mode: false

Registry: https://index.docker.io/v1/

Labels:

Experimental: false

Insecure Registries:

127.0.0.0/8

Live Restore Enabled: false

Product License: Community Engine

从输出中,我们可以清晰地看到当前系统中容器的运行状态,如正在运行的容器数量、暂停的容器数量和停止的容器数量。同时,还能了解到镜像的数量、存储驱动的类型、网络插件的信息等。这些信息对于我们监控和管理 Docker 系统非常重要,就像医生通过各种检查数据来了解病人的身体状况一样,我们可以根据这些信息来优化和调整 Docker 系统的配置,确保其稳定高效地运行。

三、镜像操作命令

3.1 列出本地镜像

在使用 Docker 的过程中,我们常常需要查看本地已经下载或构建的镜像,这时就可以使用docker images命令。这个命令就像是一个 “镜像仓库管理员”,它会将本地镜像的信息清晰地展示出来。其基本语法如下:

 

docker images [OPTIONS] [REPOSITORY[:TAG]]

其中,OPTIONS是一些可选参数,REPOSITORY表示镜像仓库名称,TAG表示镜像标签。如果不指定REPOSITORY和TAG,则会列出所有本地镜像。常见的参数有:

  • -a:列出本地所有的镜像,包括中间映像层。默认情况下,会过滤掉中间映像层,只展示最终的镜像。就好比一个仓库里有很多货物,默认只展示摆放在外面的成品,而-a参数可以让我们看到仓库里所有的货物,包括半成品。
  • --digests:显示镜像的摘要信息,这对于确保镜像的完整性和一致性非常重要。就像我们购买商品时,查看商品的防伪标识,确保买到的是正品。
  • -f:根据指定条件过滤结果。例如,docker images -f "dangling=true"可以列出所有虚悬镜像(仓库名和标签都是<none>的镜像)。这就像是在仓库里筛选出特定类型的货物,方便我们管理和清理。
  • --format:指定返回值的模板文件,通过 Go 语言模板文件来定制展示的格式,让输出更符合我们的需求。
  • --no-trunc:显示完整的镜像信息,不会截断输出。有时候镜像的一些信息可能比较长,默认会截断显示,使用这个参数就可以看到完整的内容。
  • -q:只显示镜像 ID,简洁明了,适合在需要快速获取镜像 ID 的场景中使用。

执行docker images命令后,会看到一个类似如下的表格:

 

REPOSITORY TAG IMAGE ID CREATED SIZE

nginx latest 8609f97d428d 2 weeks ago 133MB

ubuntu 20.04 94e19c99c257 3 weeks ago 72.8MB

hello-world latest c54a2cc56cbb 5 months ago 1.84kB

表格中的各列含义如下:

  • REPOSITORY:镜像所属的仓库名称,就像货物所属的品牌或类别。
  • TAG:镜像的标签,用于区分同一仓库中的不同版本,通常latest表示最新版本。这就好比商品的不同批次或型号。
  • IMAGE ID:镜像的唯一标识,类似于商品的条形码,通过它可以准确地识别和操作镜像。
  • CREATED:镜像的创建时间,让我们了解镜像的 “年龄”。
  • SIZE:镜像的大小,反映了镜像所占用的存储空间,就像商品的体积大小。

3.2 搜索镜像

当我们需要在 Docker Hub 中查找特定的镜像时,docker search命令就派上用场了。它就像是一个 “镜像搜索引擎”,帮助我们在海量的镜像中找到符合需求的那一个。其基本语法为:

 

docker search [OPTIONS] TERM

其中,OPTIONS是可选参数,TERM是搜索的关键词,比如镜像名称或相关描述。常见的参数有:

  • --automated:只列出自动构建的镜像,这些镜像通常是由一些自动化工具或流程创建的,质量和稳定性可能更有保障。
  • --filter, -f:根据指定条件过滤结果。例如,docker search -f "stars=30" nginx可以筛选出点赞数(STARS)大于等于 30 的 nginx 镜像。这就像是在搜索引擎中设置筛选条件,快速找到符合要求的信息。
  • --limit:限制搜索结果的最大条数,默认是 25 条。如果我们只需要查看前几个最相关的镜像,可以使用这个参数来控制输出数量。
  • --no-trunc:不截断输出,显示完整的镜像描述和其他信息,让我们能更全面地了解镜像的详细情况。
  • --stars, -s:只展示点赞数(STARS)不低于该数值的结果,通过点赞数可以大致了解镜像的受欢迎程度和质量。

例如,我们要搜索 nginx 镜像,可以执行以下命令:

 

docker search nginx

执行后,会看到一个类似如下的表格:

 

NAME DESCRIPTION STARS OFFICIAL AUTOMATED

nginx Official build of Nginx. 16640 [OK]

jwilder/nginx-proxy Automated Nginx reverse proxy for docker con… 1715 [OK]

richarvey/nginx-php-fpm Container running Nginx + PHP-FPM capable of… 815 [OK]

表格中的各列含义如下:

  • NAME:镜像的名称,包含仓库名和镜像名,方便我们识别和拉取。
  • DESCRIPTION:镜像的描述信息,简单介绍了镜像的用途和特点,帮助我们判断是否符合需求。
  • STARS:镜像的点赞数,反映了该镜像在社区中的受欢迎程度,点赞数越高,通常表示该镜像质量和实用性较好。
  • OFFICIAL:表示是否为官方镜像,官方镜像由软件的官方项目组创建和维护,质量和安全性更有保障。
  • AUTOMATED:表示是否是自动构建的镜像,自动构建的镜像一般是通过特定的脚本或工具自动生成的,构建过程更加标准化和高效。

3.3 拉取镜像

从远程仓库获取镜像到本地,我们使用docker pull命令,它就像是一个 “镜像搬运工”,将我们需要的镜像从远程仓库搬运到本地。其基本语法为:

 

docker pull [OPTIONS] NAME[:TAG|@DIGEST]

其中,OPTIONS是可选参数,NAME是镜像的名称,TAG是镜像的标签,用于指定版本,DIGEST是镜像的摘要,用于唯一标识一个镜像版本。如果不指定TAG,默认会拉取latest版本。常见的参数有:

  • --all-tags, -a:下载所有标签的镜像,这在我们需要获取某个镜像的所有版本时非常有用,不过可能会占用较多的存储空间。
  • --disable-content-trust:忽略镜像的校验,默认情况下,Docker 会对下载的镜像进行校验,确保镜像的完整性和安全性。但在某些特殊情况下,我们可能需要忽略校验,比如使用一些未经过官方签名的镜像时。

例如,要拉取最新版本的 nginx 镜像,可以执行:

 

docker pull nginx

如果要拉取特定版本,比如 1.19 版本的 nginx 镜像,则执行:

 

docker pull nginx:1.19

当我们执行拉取命令时,Docker 会首先检查本地是否已经存在该镜像,如果不存在,就会从远程仓库下载。下载过程中,会显示下载的进度和相关信息,让我们清楚地了解下载的状态。

3.4 推送镜像

将本地镜像推送到远程仓库,我们需要使用docker push命令,但在推送之前,必须先登录到远程仓库,就像我们要把东西寄到某个地方,首先要获得这个地方的 “通行证”。登录远程仓库的命令是docker login,执行后会提示输入用户名和密码。登录成功后,就可以使用docker push命令推送镜像了,其基本语法为:

 

docker push [OPTIONS] NAME[:TAG]

其中,OPTIONS是可选参数,NAME是镜像的名称,TAG是镜像的标签。如果不指定TAG,默认会推送latest版本。常见的参数有:

  • --disable-content-trust:忽略镜像的校验,在推送镜像时,也可以选择忽略校验,不过这可能会带来一定的安全风险,所以在正式环境中要谨慎使用。

例如,我们要将本地的一个名为myapp:v1.0的镜像推送到 Docker Hub 上,首先登录:

 

docker login

输入用户名和密码登录成功后,执行推送命令:

 

docker push myapp:v1.0

推送过程中,会显示推送的进度和相关信息。如果推送成功,我们就可以在远程仓库中看到这个镜像了,这样其他人也可以从远程仓库拉取这个镜像来使用。

3.5 删除镜像

当我们不再需要某个本地镜像时,可以使用docker rmi命令将其删除,它就像是一个 “镜像清理工”,帮助我们释放磁盘空间,保持本地镜像仓库的整洁。其基本语法为:

 

docker rmi [OPTIONS] IMAGE [IMAGE...]

其中,OPTIONS是可选参数,IMAGE是要删除的镜像,可以是镜像 ID、镜像名或镜像名:标签的形式。常见的参数有:

  • -f, --force:强制删除镜像,即使该镜像被一个或多个容器使用。有时候,我们想要删除的镜像可能正在被容器使用,如果直接删除会报错,这时使用-f参数就可以强制删除。但要注意,强制删除可能会导致正在运行的容器出现问题,所以在使用时要谨慎。
  • --no-prune:不移除该镜像的过程镜像,默认情况下,删除镜像时会同时移除相关的过程镜像,使用这个参数可以保留过程镜像。

例如,要删除名为myapp:v1.0的镜像,可以执行:

 

docker rmi myapp:v1.0

如果要删除所有镜像,可以使用以下命令:

 

docker rmi -f $(docker images -qa)

这里的$(docker images -qa)会列出所有本地镜像的 ID,然后-f参数强制删除这些镜像。在执行删除所有镜像的命令时要特别小心,确保确实不再需要这些镜像,以免误删重要的镜像。

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

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

相关文章

网络工程师 (47)QOS

一、概念与原理 QOS即服务质量&#xff08;Quality of Service&#xff09;是一种网络技术&#xff0c;用于管理和保证网络中不同类型的质量和性能。它通过设置优先级和带宽限制等策略&#xff0c;确保关键应用&#xff08;如视频会议、语音通信&#xff09;的数据包能够在网络…

风铃摇晃的弧度与不安等长

晴&#xff0c;2025年2月19日 的确是&#xff0c;有依靠又有谁会去自己打伞。是啊&#xff0c;有时候生活推着我们走的样子确实挺无力的。不过谁都愿意携手走的&#xff0c;希望有一天再也不用“抛头露面”了吧。 又下载回了 X &#xff0c;马上 Gork 3 可以使用&#xff0c…

Linux部署DeepSeek r1 模型训练

之前写过一篇windows下部署deepseekR1的文章&#xff0c;有小伙伴反馈提供一篇linux下部署DeepSeek r1 模型训练教程&#xff0c;在 Linux 环境下&#xff0c;我找了足够的相关资料&#xff0c;花费了一些时间&#xff0c;我成功部署了 DeepSeek R1 模型训练任务&#xff0c;结…

JetBrains 2024开发者生态报告 -你尝试过用VR头戴设备编程吗

JetBrains 2024开发者生态报告&#xff1a;核心洞察 方法论 覆盖 171 个国家/地区 的 23,262 名开发者 。数据按区域开发者数量和就业状态加权。 主要趋势 AI 整合 80% 的公司允许使用第三方 AI 工具&#xff08;如 ChatGPT、Copilot&#xff09;。18% 的开发者将 AI 集成到产…

汇能感知的光谱相机/模块产品有哪些?

CM020A 分辨率&#xff1a;1600H1200V 光谱范围&#xff1a;350~950nm 光谱分辨率&#xff1a;1nm 接口&#xff1a;USB2.0 帧率&#xff1a;16001200 (6帧) 输出格式&#xff1a;Raw 8bit FOV&#xff1a;D73.5H58.8V44.1 相机尺寸&#xff1a;505055mm VM02S10 分辨率…

Spring中Bean的四种实例化方法

Bean的四种实例化方法 Bean是Spring核心的概念&#xff0c;另外一个核心的概念是AOP。官网上&#xff0c;Bean的解释是&#xff1a; In Spring, the objects that form the backbone of your application and that are managed by the Spring IoC container are called beans…

Office word打开加载比较慢处理方法

1.添加safe参数 ,找到word启动项,右击word,选择属性 , 添加/safe , 应用并确定 2.取消加载项,点击文件,点击选项 ,点击加载项,点击转到,取消所有勾选,确定。

一台服务器将docker image打包去另一天服务器安装这个镜像

一台服务器将docker image打到去另一天服务器安装这个镜像 1. 打包2.另一台服务器执行 1. 打包 docker save -o nebula-graph-studio.tar harbor1.vm.example.lan/dockerio/vesoft/nebula-graph-studioxxx.tar 是打包好的文件 后面的是 docker image 2.另一台服务器执行 docke…

在局域网中连接Grafana数据源

目录 登录Grafana 添加数据源 配置数据源 保存并测试 使用数据源 注意事项 登录Grafana 打开浏览器&#xff0c;访问Grafana的地址&#xff0c;默认是http://localhost:3000。 使用默认用户名和密码登录&#xff08;通常是admin/admin&#xff09;&#xff0c;登录后建议…

【部署优化篇四】《DeepSeek移动端优化:CoreML/TFLite实战对比》

手机里的AI助手能秒速回答你的问题,游戏人物能实时追踪你的表情变化,这些酷炫功能的背后都离不开移动端机器学习框架的支撑。今天我们就来撕开两个当红炸子鸡框架CoreML和TFLite的神秘面纱,看看它们在模型优化这件事上到底藏着哪些独门绝技。 一、移动端优化的生存法则 在…

【分布式理论14】分布式数据库存储:分表分库、主从复制与数据扩容策略

文章目录 一、分表分库1. 数据分表的必要性与方式2. 数据分库原则与优势 二、主从复制1. 读写分离架构设计2. 数据复制方式3. MySQL实现主从复制4. MySQL主从复制实践与高可用方案 三、数据扩容 随着业务的不断发展和数据量的增长&#xff0c;传统的单机关系型数据库已经逐渐不…

复现log4j2的jndi注入成功反弹shell

在Apache Solr 中复现log4j2的jndi注入漏洞&#xff0c;获得docker容器的root权限&#xff0c;实验五步走&#xff1a; 启动容器访问web页面漏洞探测反弹shell载荷wireshark抓取log4j反弹shell流量 ailx10 1956 次咨询 4.9 网络安全优秀回答者 互联网行业 安全攻防员 去咨…

Cursor实战:Web版背单词应用开发演示

Cursor实战&#xff1a;Web版背单词应用开发演示 需求分析自行编写需求文档借助Cursor生成需求文档 前端UI设计后端开发项目结构环境参数数据库设计安装Python依赖运行应用 前端代码修改测试前端界面 测试数据生成功能测试Bug修复 总结 在上一篇《Cursor AI编程助手不完全指南》…

win10系统上的虚拟机安装麒麟V10系统提示找不到操作系统

目录预览 一、问题描述二、原因分析三、解决方案四、参考链接 一、问题描述 win10系统上的虚拟机安装麒麟V10系统提示找不到操作系统&#xff0c;报错&#xff1a;Operating System not found 二、原因分析 国产系统&#xff0c;需要注意的点&#xff1a; 需要看你的系统类…

矿用机车移动逆变电源设计(论文+源码)

1总体方案设计 本课题为矿用机车移动逆变电源的硬件电路设计&#xff0c;其整个架构如图2.1所示包括了:380V三相交流电&#xff0c;逆变电路&#xff0c;高频变压器&#xff0c;24V直流输出&#xff0c;控制电路&#xff0c;驱动电路&#xff0c;保护电路等等。 在工作原理上&…

前七章综合练习

一&#xff0c;拓扑图 二&#xff0c;实验要求 不限 三&#xff0c;实验步骤 第一步&#xff0c;搭建拓扑图 如上 注意&#xff1a; 第二步&#xff0c;配置IP trust&#xff1a; client1 client2 fw untrusrt-1&#xff1a; fw r3 电信DNS 百度web-1 untrust-2&#xf…

环境变量2

目录 环境变量PATH 如何改变PATH 我们今天继续来学习环境变量2&#xff01;&#xff01;&#xff01; 环境变量PATH PATH的作用是知道命令的搜索路径&#xff0c;我们都知道Linux上的命令行指令&#xff0c;ll&#xff0c;pwd什么的为什么我们写出来系统就知道是什么并且运…

数据录入与处理岗位

随着人工智能技术的迅猛发展&#xff0c;DeepSeek等先进AI系统正在逐步渗透到各个行业&#xff0c;工控行业也不例外。工控行业作为工业自动化的核心领域&#xff0c;涵盖了从生产线控制到设备维护的多个环节。然而&#xff0c;随着AI技术的不断进步&#xff0c;一些传统岗位正…

基于ffmpeg+openGL ES实现的视频编辑工具(一)

在深入钻研音视频编辑开发这片技术海洋时&#xff0c;相信不少开发者都和我有同样的感受&#xff1a;网络上关于音视频编辑工具实现的资料繁多&#xff0c;理论阐释细致入微&#xff0c;代码片段也随处可见。然而&#xff0c;一个显著的缺憾是&#xff0c;缺乏一个完整成型的 A…

LLM 推理中推理-时间计算技巧

25年2月来自香港科技大学广州分校的论文“Bag of Tricks for Inference-time Computation of LLM Reasoning”。 随着大语言模型 (LLM) 的进步&#xff0c;解决复杂的推理任务越来越受到关注。推理-时间计算方法&#xff08;例如 Best-of-N、波束搜索等&#xff09;特别有价值…