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

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

一、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参数强制删除这些镜像。在执行删除所有镜像的命令时要特别小心,确保确实不再需要这些镜像,以免误删重要的镜像。

相关文章:

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

一、Docker 初相识 在当今数字化时代&#xff0c;软件开发和部署的效率与灵活性成为了关键因素。Docker&#xff0c;作为一款开源的应用容器引擎&#xff0c;犹如一颗璀璨的明星&#xff0c;照亮了软件开发与部署的道路&#xff0c;为开发者们带来了前所未有的便利。它就像是一…...

机器学习之AAE(Adversarial Autoencoder,对抗自编码器)生成数据样本

对抗自编码器(Adversarial Autoencoder,AAE)是一种结合了自编码器(Autoencoder)和生成对抗网络(GAN)的方法,用于生成新数据样本。它的目标是学习到数据的潜在分布,并通过生成对抗训练来优化潜在空间,使其接近一个已知的简单分布(例如,高斯分布)。 AAE的结构和训练…...

用大模型学大模型03-数学基础 概率论 最大似然估计(MLE)最大后验估计(MAP)

https://metaso.cn/s/r4kq4Ni 什么是最大似然估计&#xff08;MLE&#xff09;最大后验估计&#xff08;MAP&#xff09;&#xff1f;深度学习中如何应用&#xff0c;举例说明。 好的&#xff0c;我现在需要回答关于最大似然估计&#xff08;MLE&#xff09;和最大后验估计&…...

名词解释:npm,cnpm,yarn,vite,vue,electron

1. npm (Node Package Manager) 读音: “N-P-M” 或者直接读作 “npm”。 npm 是 Node.js 的官方包管理器&#xff0c;用于安装、发布和管理 JavaScript 软件包。它允许开发者轻松地共享代码&#xff0c;并且可以通过命令行工具来管理依赖关系。通过 npm init 命令可以交互式…...

ESXi安装【真机和虚拟机】(超详细)

项目简介&#xff1a; ESXi&#xff08;Elastic Sky X Integrated&#xff09;是VMware公司开发的一种裸机虚拟化管理程序&#xff0c;允许用户在单一物理服务器上运行多个虚拟机&#xff08;VM&#xff09;。它直接安装在服务器硬件上&#xff0c;而不是操作系统之上&#xff…...

每日一题——矩阵最长递增路径

矩阵最长递增路径问题 题目描述数据范围&#xff1a;进阶要求&#xff1a;示例示例 1示例 2 题解思路算法步骤&#xff1a;代码实现代码解释复杂度分析总结 题目描述 给定一个 n 行 m 列的矩阵 matrix&#xff0c;矩阵内所有数均为非负整数。你需要在矩阵中找到一条最长路径&a…...

设置ollama接口能外部访问

为了配置Ollama以允许外网访问&#xff0c;你可以按照以下步骤进行操作&#xff1a; ‌确认Ollama服务已正确安装并运行‌&#xff1a; 使用以下命令检查Ollama服务的状态&#xff1a; bash Copy Code systemctl status ollama如果服务未运行&#xff0c;使用以下命令启动它&…...

TOML介绍

0 Preface/Foreword TOML&#xff0c;一种配置文件格式。Toms Obvious Minimal Language. 1 介绍 TOML: Toms Obvious Minimal Language&#xff0c;“显而易见的最小化语言 ” JSON&#xff1a;不支持注释 YAML&#xff1a;过于复杂...

macOS部署DeepSeek-r1

好奇&#xff0c;跟着网友们的操作试了一下 网上方案很多&#xff0c;主要参考的是这篇 DeepSeek 接入 PyCharm&#xff0c;轻松助力编程_pycharm deepseek-CSDN博客 方案是&#xff1a;PyCharm CodeGPT插件 DeepSeek-r1:1.5b 假设已经安装好了PyCharm PyCharm: the Pyth…...

从云原生到 AI 原生,谈谈我经历的网关发展历程和趋势

作者&#xff1a;谢吉宝&#xff08;唐三&#xff09; 编者按&#xff1a; 云原生 API 网关系列教程即将推出&#xff0c;欢迎文末查看教程内容。本文整理自阿里云智能集团资深技术专家&#xff0c;云原生产品线中间件负责人谢吉宝&#xff08;唐三&#xff09; 在云栖大会的精…...

京东 旋转验证码 分析

声明: 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01; 逆向分析 使用的第三方接码平台识别…...

R18 XR L1 enhancement

这篇是R18 XR的最后一部分,主要是L1方面的增强。 这部分增强大概的背景如下。 一些 XR 应用(例如增强现实)不仅在 DL 方向需要高数据速率,在 UL 方向也需要高数据速率。如果应用需要在 UL 方向传输视频流量,则 UL 中支持的 XR 用户数量可能非常有限。因此,增加有限的时间…...

利用Java爬虫按图搜索1688商品(拍立淘):实战案例指南

在电商领域&#xff0c;按图搜索功能&#xff08;如1688的“拍立淘”&#xff09;为用户提供了更直观、便捷的购物体验。通过上传图片&#xff0c;用户可以快速找到与图片相似的商品。本文将详细介绍如何利用Java爬虫技术实现按图搜索1688商品&#xff0c;并获取其详情数据。 …...

算法-计算字符的最短距离

力扣题目&#xff1a;821. 字符的最短距离 - 力扣&#xff08;LeetCode&#xff09; 给你一个字符串 s 和一个字符 c &#xff0c;且 c 是 s 中出现过的字符。 返回一个整数数组 answer &#xff0c;其中 answer.length s.length 且 answer[i] 是 s 中从下标 i 到离它 最近 …...

sqlilabs--小实验

一、先盲注判断 ?id1 and sleep(2)-- 如果发现页面存在注点&#xff0c;使用时间盲注脚本进行注入 import requestsdef inject_database(url):name for i in range(1, 20): # 假设数据库名称长度不超过20low 48 # 0high 122 # zmiddle (low high) // 2while low &l…...

【JavaScript爬虫记录】记录一下使用JavaScript爬取m4s流视频过程(内含ffmpeg合并)

前言 前段时间发现了一个很喜欢的视频,可惜网站不让下载,简单看了一下视频是被切片成m4s格式的流文件,初步想法是将所有的流文件下载下来然后使用ffmpeg合并成一个完整的mp4,于是写了一段脚本来实现一下,电脑没有配python环境,所以使用JavaScript实现,合并功能需要安装ffmpeg,…...

腿足机器人之一- 机械与电子组件概览

腿足机器人之一机械与电子组件概览 引言机械组件骨架材料关节设计关节机械组件轴承&#xff08;ings&#xff09;连杆&#xff08;Linkages&#xff09;齿轮&#xff08;Gears&#xff09; 电气组件电机控制器传感器 四足机器人设计双足机器人设计波士顿Atlas机器人 引言 腿足…...

利用二分法+布尔盲注、时间盲注进行sql注入

一、布尔盲注&#xff1a; import requestsdef binary_search_character(url, query, index, low32, high127):while low < high:mid (low high 1) // 2payload f"1 AND ASCII(SUBSTRING(({query}),{index},1)) > {mid} -- "res {"id": payloa…...

本地部署DeepSeek Nodejs版

目录 1.下载 Ollama 2.下载DeepSeek模型 3.下载 ollama.js 1.下载 Ollama https://ollama.com/ 下载之后点击安装&#xff0c;等待安装成功后&#xff0c;打开cmd窗口&#xff0c;输入以下指令&#xff1a; ollama -v 如果显示了版本号&#xff0c;则代表已经下载成功了。…...

mapbox进阶,添加绘图扩展插件,绘制任意方向矩形

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:mapbox 从入门到精通 文章目录 一、🍀前言1.1 ☘️mapboxgl.Map 地图对象1.2 ☘️mapboxgl.Map style属性1.3 ☘️MapboxDraw 绘图控件二、🍀添加绘图扩…...

哈希槽算法与一致性哈希算法比较

Redis 集群模式使用的 哈希槽&#xff08;Hash Slot&#xff09; 算法与传统的 一致性哈希&#xff08;Consistent Hashing&#xff09; 算法在数据分布和节点管理上有显著的区别。以下是两者的详细比较&#xff1a; 1. Redis 哈希槽算法 1.1 基本原理 Redis 集群将整个数据集…...

DeepSeek+Excel 效率翻倍

2025年初&#xff0c;DeepSeek以惊人的效率突破技术壁垒&#xff0c;用极低的成本实现了与行业顶尖AI相媲美的性能&#xff0c;瞬间成为全球科技领域的热门话题。 那么AI工具的普及将如何改变我们的工作方式&#xff1f;Excel会被取代吗&#xff1f; 今天&#xff0c;珠珠带你…...

【个人开发】cuda12.6安装vllm安装实践【内含踩坑经验】

1. 背景 vLLM是一个快速且易于使用的LLM推理和服务库。企业级应用比较普遍&#xff0c;尝试安装相关环境&#xff0c;尝试使用。 2. 环境 模块版本python3.10CUDA12.6torch2.5.1xformers0.0.28.post3flash_attn2.7.4vllm0.6.4.post1 2.1 安装flash_attn 具体选择什么版本&…...

Prompt通用技巧

Prompt 的典型构成 角色:给 AI定义一个最匹配任务的角色&#xff0c;比如:「你是一位软件工程师」「你是一位小学老师」指示:对任务进行描述上下文: 给出与任务相关的其它背景信息(尤其在多轮交互中)。例子 : 必要时给出举例&#xff0c;学术中称为 one-shot learning,few-sho…...

【R语言】方差分析

一、基本术语 在R语言以及更广泛的统计学领域中&#xff0c;方差分析&#xff08;ANOVA&#xff0c;即Analysis of Variance&#xff09;是一种用于比较两个或更多组数据的均值是否存在显著差异的统计方法。可以使用aov()函数或其他相关函数&#xff08;如anova()&#xff09;…...

XSS 常用标签及绕过姿势总结

XSS 常用标签及绕过姿势总结 一、xss 常见标签语句 0x01. 标签 <a href"javascript:alert(1)">test</a> <a href"x" onfocus"alert(xss);" autofocus"">xss</a> <a href"x" onclickeval(&quo…...

haproxy详解笔记

一、概述 HAProxy&#xff08;High Availability Proxy&#xff09;是一款开源的高性能 TCP/HTTP 负载均衡器和代理服务器&#xff0c;用于将大量并发连接分发到多个服务器上&#xff0c;从而提高系统的可用性和负载能力。它支持多种负载均衡算法&#xff0c;能够根据服务器的…...

「软件设计模式」工厂方法模式 vs 抽象工厂模式

前言 在软件工程领域&#xff0c;设计模式是解决常见问题的经典方案。本文将深入探讨两种创建型模式&#xff1a;工厂方法模式和抽象工厂模式&#xff0c;通过理论解析与实战代码示例&#xff0c;帮助开发者掌握这两种模式的精髓。 一、工厂方法模式&#xff08;Factory Metho…...

Flutter_学习记录_数据更新的学习

Flutter 如果界面上有数据更新时&#xff0c;目前学习到的有3种&#xff1a; 第一种&#xff1a; 直接用 StatefulWidget组件&#xff0c;然后当数据更新时&#xff0c;调用setState的方法更新数据&#xff0c;页面上的数据会直接更新&#xff1b;第二种&#xff1a; 用 State…...

淘宝订单列表Fragment转场动画卡顿解决方案

如何应对产品形态与产品节奏相对确定情况下转变为『在业务需求与产品形态高度不确定性的情况下&#xff0c;如何实现业务交付时间与交付质量的确定性』。我们希望通过混合架构&#xff08;Native 业务容器 Weex 2.0&#xff09;作为未来交易终端架构的重要演进方向&#xff0c…...

【状态空间方程】对于状态空间方程矩阵D≠0时的状态反馈与滑模控制

又到新的一年啦&#xff0c;2025新年快乐~。前几个月都没更新&#xff0c;主要还是因为不能把项目上的私密工作写进去&#xff0c;所以暂时没啥可写的。最近在山里实习&#xff0c;突然想起年前遗留了个问题一直没解决&#xff0c;没想到这两天在deepseek的加持下很快解决了&am…...

优雅的git log输出内容更加醒目

执行命令 git config --global alias.lg "log --graph --prettyformat:%C(red)%h%C(reset) - %C(yellow)%d%C(reset) %C(magenta)<%an>%C(reset) %C(cyan)(%ad)%C(reset) %C(green)%s%C(reset) (%cr) --abbrev-commit --dateformat:%Y-%m-%d %H:%M:%S"...

PySide(PyQT)使用场景(QGraphicsScene)进行动态标注的一个demo

用以标注图像的一个基本框架demo import sys from PySide6.QtWidgets import QApplication, QGraphicsView, QGraphicsScene, QMainWindow, QLabel, QGraphicsPixmapItem from PySide6.QtGui import QPixmap, QPainter, QTransform from PySide6.QtCore import Qt, QPointF, S…...

LeetCode每日精进:876.链表的中间结点

题目链接&#xff1a;876.链表的中间结点 题目描述&#xff1a; 给你单链表的头结点 head &#xff0c;请你找出并返回链表的中间结点。 如果有两个中间结点&#xff0c;则返回第二个中间结点。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5] 输出&#xff1a;[3,4,5…...

ollama实践笔记

目录 一、linux安装文件命令&#xff1a; 二、启动ollama 三、linux 如何把ollama serve做为服务方式启动 四、安装deepseek-r1 五、如何在网页中使用ollama&#xff1f; ‌5.1 安装Open WebUI【不推荐】 5.2 安装ollama-webui-lite 六、Ubuntu安装docker、只需要一句话…...

联想电脑如何进入BIOS?

打开设置 下滑找到更新与安全 点击恢复和立即重新启动 选择疑难解答 选择UEFI固件设置 然后如果有重启点击重启 重启开机时一直点击FNF10进入BIOS界面...

CentOS本机配置为时间源

CentOS本机配置为时间源 安装chrony&#xff0c;默认已安装修改配置文件 /etc/chrony.conf客户端配置 安装chrony&#xff0c;默认已安装 yum -y install chrony修改配置文件 /etc/chrony.conf # cat /etc/chrony.conf | grep -Ev "^$|#" server ceph00 iburst dri…...

使用 EDOT 监测由 OpenAI 提供支持的 Python、Node.js 和 Java 应用程序

作者&#xff1a;来自 Elastic Adrian Cole Elastic 很自豪地在我们的 Python、Node.js 和 Java EDOT SDK 中引入了 OpenAI 支持。它们为使用 OpenAI 兼容服务的应用程序添加日志、指标和跟踪&#xff0c;而无需任何代码更改。 介绍 去年&#xff0c;我们宣布了 OpenTelemetry…...

微信小程序网络请求封装

微信小程序的网络请求为什么要封装&#xff1f;封装使用有什么好处&#xff1f; 封装的目的是为了偷懒&#xff0c;试想一下每次都要wx.request&#xff0c;巴拉巴拉传一堆参数&#xff0c;是不是很麻烦&#xff0c;有些公共的参数例如header&#xff0c;baseUrl是不是可以封装…...

【自学笔记】人工智能基础知识点总览-持续更新

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 人工智能重点知识点总览一、基础概念与原理1.1 人工智能定义与发展1.2 算法与数据结构1.3 数学基础 二、机器学习2.1 监督学习2.2 无监督学习2.3 强化学习 三、深度…...

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

四、容器操作命令 4.1 运行容器 使用docker run命令可以创建并运行一个容器&#xff0c;它就像是一个神奇的 “启动器”&#xff0c;让镜像中的应用程序在容器中运行起来。其基本语法为&#xff1a; docker run [OPTIONS] IMAGE [COMMAND] [ARG...] 其中&#xff0c;OPTIONS…...

初学java 数据库相关学习

创建数据库&#xff1a; 主键: unsigned primary key auto_increment 外键: foreign key(xx) references table_name(xx) 字段: 类型: int ; tinyint ;char(20);varchar(255); date; datetime; text; float(5,2); double(10,2); long; decimal(15,10) 约束:primary key; foreig…...

ARM64 Trust Firmware [一]

ARMv8 启动流程&#xff1a; 在《RK3568上电启动流程 [十五]》中&#xff0c;简单介绍了 RK3568 的上电启动过程&#xff0c;本篇再详细分解其启动流程。 在 ARMv8 架构中&#xff0c;启动流程包含多个阶段&#xff0c;这些阶段被称为 BL &#xff08;bootloader&#xff09; …...

K8S容器启动提示:0/2 nodes are available: 2 Insufficient cpu.

问题&#xff1a;K8S的容器启动报错0/2 nodes are available: 2 Insufficient cpu. 原因&#xff1a;Pod的资源请求&#xff08;requests&#xff09;设置不当&#xff1a;在Kubernetes中&#xff0c;调度器根据Pod的requests字段来决定哪个节点可以运行该Pod。如果一个Pod声明…...

数据结构:图论入门

图论起源于欧拉对哥尼斯堡七桥问题的解决. 他构建的图模型将陆地用点来表示, 桥梁则用线表示, 如此一来, 该问题便转化为在图中能否不重复地遍历每条边的问题. 图论的应用 地图着色 在地图着色问题中, 我们用顶点代表国家, 将相邻国家之间用边相连. 这样, 问题就转化为用最少…...

DataBase【MySQL基础夯实使用说明(下)】

MySQL数据库 &#x1f3c6;当领导表示关心时&#xff0c;您怎么回复&#xff1f; ⚠️不要傻傻的说应该的&#xff0c;这样不仅会抹杀掉你的辛苦&#xff0c;也让领导没办法接话&#xff01; &#x1f514;文章末尾彩蛋&#xff01; 文章目录 MySQL数据库前言一、约束1.1.外键…...

Golang的多团队协作编程模式与实践经验

Golang的多团队协作编程模式与实践经验 一、多团队协作编程模式概述 在软件开发领域&#xff0c;多团队协作编程是一种常见的工作模式。特别是对于大型项目来说&#xff0c;不同团队间需要协同合作&#xff0c;共同完成复杂的任务。Golang作为一种高效、并发性强的编程语言&…...

详解spotbugs -textui常用命令(包括生成html测试报告)

用命令运行spotbugs 本文默认大家了解spotbugs的基础使用&#xff0c;如果不了解可以参考文章 使用神器Spotbugs&#xff0c;轻松入门静态代码分析-CSDN博客 我们在使用spotbugs 对Java代码进行静态分析&#xff0c;查找相关的漏洞时通常在使用Maven和Gradle进行构建的过程中…...

C++:Map和Set

目录 一、关联式容器 二、键值对 三、树形结构的关联式容器 A.set的模板参数列表 B.set的构造 C.set的迭代器 D.set的容量 E.set的修改操作 F.set的使用举例 A.map的模板参数列表 B.map的构造 C.map的迭代器 D.map的容量 E.map中元素的修改 operator[ ] insert()…...

【Unity Shader编程】之顶点着色器

来一张AI提供的资料 在shader编程中&#xff0c;定义的结构体&#xff0c;有些是会被自动赋值&#xff0c;有些是必须要手动赋值的&#xff0c;这就涉及到了语义&#xff0c; 例如 struct appdata{float4 vertex : POSITION;float vertex2;float2 uv : TEXCOORD0;};结构体里面定…...