[{"data":1,"prerenderedAt":1615},["ShallowReactive",2],{"navigation":3,"\u002Fdocs\u002Fdocker\u002Fbasic\u002Fdocker-context":158,"\u002Fdocs\u002Fdocker\u002Fbasic\u002Fdocker-context-description":1604},[4],{"title":5,"path":6,"stem":7,"children":8,"page":36},"Docs","\u002Fdocs","docs",[9,37,45,65,148],{"title":10,"description":11,"icon":12,"path":13,"stem":14,"children":15,"page":36},"Redis","Redis是一个开源的高性能键值存储数据库，它提供了多种数据结构来存储数据，如字符串、哈希、列表、集合、有序集合等。Redis将数据存储在内存中，以提供快速的读写访问速度，并且能够通过异步的方式将数据持久化到磁盘上。它支持复制、Lua脚本、事务处理、不同级别的持久化选项以及多种客户端语言的接口。Redis广泛用于缓存、消息队列、短时数据存储和高性能的应用场景中。","skill-icons:redis-light","\u002Fdocs\u002Fredis","docs\u002F1.redis",[16],{"title":17,"path":18,"stem":19,"children":20,"description":34,"icon":35},"install","\u002Fdocs\u002Fredis\u002Finstall","docs\u002F1.redis\u002F1.install\u002F1.index",[21,24,29],{"title":22,"path":18,"stem":19,"description":23},"Introduction","The powerful Git-based CMS designed specifically for Nuxt developers.",{"title":25,"path":26,"stem":27,"description":28},"Installation","\u002Fdocs\u002Fredis\u002Finstall\u002Finstallation","docs\u002F1.redis\u002F1.install\u002F2.installation","Get started with Nuxt Content v3 in your Nuxt application.",{"title":30,"path":31,"stem":32,"description":33},"Configuration","\u002Fdocs\u002Fredis\u002Finstall\u002Fconfiguration","docs\u002F1.redis\u002F1.install\u002F3.configuration","Nuxt Content is configured with sensible defaults.",null,"icon-park-outline:install",false,{"title":38,"path":39,"stem":40,"children":41,"description":43,"icon":44},"SpringBoot","\u002Fdocs\u002Fspringboot","docs\u002F2.springboot\u002F1.index",[42],{"title":22,"path":39,"stem":40,"description":23},"Spring Boot 是一个基于 Spring 框架的‌开箱即用型 Java 开发框架‌，由 Pivotal 团队于 2014 年推出，旨在彻底简化 Spring 应用的初始搭建、配置和部署流程。其核心理念是 ‌\"约定优于配置\"‌，通过自动化机制减少开发者的样板代码工作，显著提升效率。","simple-icons:springboot",{"title":46,"path":47,"stem":48,"children":49,"description":63,"icon":64},"Rocky Linux","\u002Fdocs\u002Frocky","docs\u002F3.rocky\u002F1.index",[50,53,58],{"title":51,"path":47,"stem":48,"description":52},"1 Rocky Linux 概述","Rocky Linux 是一个开源、免费的企业级 Linux 操作系统。它的核心目标是与 Red Hat Enterprise Linux (RHEL) 100% 完全兼容，可以看作是原本广受欢迎的 CentOS 的“替代者”和“精神继承者.",{"title":54,"path":55,"stem":56,"description":57},"2 VMware安装Rocky Linux","\u002Fdocs\u002Frocky\u002Finstall","docs\u002F3.rocky\u002F2.install","本文主要介绍了VMware Workstation 17.x 虚拟机如何快速安装Rocky Linux 10.x 版本的Linux操作系统。",{"title":59,"path":60,"stem":61,"description":62},"3 Rocky Linux 10安装Docker","\u002Fdocs\u002Frocky\u002Fdocker","docs\u002F3.rocky\u002F3.docker","在 Rocky Linux 10 上安装 Docker 的推荐方式是使用其官方仓库。下面是完整的安装步骤。","Rocky Linux 是一个开源、免费的企业级 Linux 操作系统。它的核心目标是与 Red Hat Enterprise Linux (RHEL) 100% 完全兼容，可以看作是原本广受欢迎的 CentOS 的“替代者”和“精神继承者”","logos:rocky-linux-icon",{"title":66,"description":67,"icon":68,"path":69,"stem":70,"children":71,"page":36},"Docker","Docker是一个开源的应用容器引擎，可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中，然后发布到Docker容器中运行，也可以实现虚拟化。","devicon:docker","\u002Fdocs\u002Fdocker","docs\u002F4.docker",[72,96,111,137],{"title":73,"path":74,"stem":75,"children":76,"description":34,"icon":95},"Docker 基础","\u002Fdocs\u002Fdocker\u002Fbasic","docs\u002F4.docker\u002F1.basic\u002F1.index",[77,80,85,90],{"title":78,"path":74,"stem":75,"description":79},"Docker基础概念","Docker是一个基于Go语言开发并遵从 Apache2.0 协议开源的应用容器引擎，可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中，然后发布到Docker环境中运行，容器彼此隔离，但可以通过特定的通道相互传递信息。保证了在任何环境下运行的应用程序具有相同的行为，这极大地减少了环境差异导致的“在我机器上可以运行”的问题。",{"title":81,"path":82,"stem":83,"description":84},"Docker核心架构","\u002Fdocs\u002Fdocker\u002Fbasic\u002Fdocker-architecture","docs\u002F4.docker\u002F1.basic\u002F2.docker-architecture","Docker 采用 C\u002FS 架构，客户端通过 REST API 将指令下达给常驻后台的守护进程（dockerd）；守护进程则依靠 Linux 内核的 Namespace 实现环境隔离、Cgroups 实现资源配额，并利用 UnionFS 的分层存储机制构建镜像和容器，从而在单台宿主机上实现了轻量级、高性能的应用沙箱。",{"title":86,"path":87,"stem":88,"description":89},"Docker镜像加速","\u002Fdocs\u002Fdocker\u002Fbasic\u002Fdocker-mirror-acceleration","docs\u002F4.docker\u002F1.basic\u002F3.docker-mirror-acceleration","Docker安装完成后默认的官方镜像仓库是[Docker Hub‌](https:\u002F\u002Fhub.docker.com\u002F){target=blank}，这是Docker官方维护的公共镜像注册中心。但对于国内Docker用户而言，在没有魔法的情况下是无法访问Docker Hub网站的，也无法从Docker Hub仓库拉取镜像。目前国内常用的2种方法：**Docker镜像加速源** 和 **配置Docker代理**。",{"title":91,"path":92,"stem":93,"description":94},"Docker Context","\u002Fdocs\u002Fdocker\u002Fbasic\u002Fdocker-context","docs\u002F4.docker\u002F1.basic\u002F4.docker-context","Docker Context 是 Docker 19.03 版本引入的一项功能，它为 Docker 客户端（CLI）提供了一套标准化的“连接配置”机制。通过 Context，你可以轻松地在本地开发环境、远程服务器、云服务等多个 Docker 环境之间快速切换，极大地提升了多环境管理的效率。","mdi:information-box-outline",{"title":97,"description":34,"icon":35,"path":98,"stem":99,"children":100,"page":36},"Docker 安装","\u002Fdocs\u002Fdocker\u002Finstall","docs\u002F4.docker\u002F2.install",[101,106],{"title":102,"path":103,"stem":104,"description":105},"CentOS安装Docker","\u002Fdocs\u002Fdocker\u002Finstall\u002Fcentos-docker-install","docs\u002F4.docker\u002F2.install\u002F1.centos-docker-install","在 CentOS 上安装 Docker，准确的说是安装 Docker Engine, 本文主要介绍如何在CentOS上安装Docker。",{"title":107,"path":108,"stem":109,"description":110},"Rocky安装Docker","\u002Fdocs\u002Fdocker\u002Finstall\u002Frocky-docker-install","docs\u002F4.docker\u002F2.install\u002F2.rocky-docker-install","在 Rocky Linux 10 上安装 Docker 和 Centos 安装 Docker 步骤基本类似的，推荐方式是使用其官方仓库。下面是完整的安装步骤。",{"title":112,"description":34,"icon":113,"path":114,"stem":115,"children":116,"page":36},"Docker 使用","fluent:data-usage-24-regular","\u002Fdocs\u002Fdocker\u002Fusage","docs\u002F4.docker\u002F3.usage",[117,122,127,132],{"title":118,"path":119,"stem":120,"description":121},"Docker持久化","\u002Fdocs\u002Fdocker\u002Fusage\u002Fdocker-persistence","docs\u002F4.docker\u002F3.usage\u002F1.docker-persistence","在 Docker 中，容器默认是无状态的，容器删除后内部数据会直接丢失，Docker 官方提供了三类核心数据持久化方案，分别适配不同的使用场景：卷（Volumes）、绑定挂载（Bind Mounts） 和 tmpfs 挂载。",{"title":123,"path":124,"stem":125,"description":126},"Docker容器自启动","\u002Fdocs\u002Fdocker\u002Fusage\u002Fcontainer-restart","docs\u002F4.docker\u002F3.usage\u002F2.container-restart","Docker容器自启动策略是指Docker服务运行期间，特定容器在退出、崩溃或宿主机重启后，容器是否自动重新运行。",{"title":128,"path":129,"stem":130,"description":131},"Docker Dockerfile","\u002Fdocs\u002Fdocker\u002Fusage\u002Fdocker-dockerfile","docs\u002F4.docker\u002F3.usage\u002F3.docker-dockerfile","本文旨在探讨Dockerfile的功能定位与指令体系，并在此基础上，给出基于Dockerfile实现自定义镜像构建的具体方法。",{"title":133,"path":134,"stem":135,"description":136},"连接远程Docker服务","\u002Fdocs\u002Fdocker\u002Fusage\u002Fconnect-remote-docker","docs\u002F4.docker\u002F3.usage\u002F4.connect-remote-docker","在日常开发或测试中，我们经常需要在本地开发环境中直接操作远程 Docker 服务——执行镜像构建、容器启停等命令，效果与直接在远程服务器上操作完全一致。这能极大提升调试与部署效率，同时避免频繁登录远程服务器的繁琐。",{"title":138,"description":34,"icon":139,"path":140,"stem":141,"children":142,"page":36},"Docker 参考手册","material-symbols-light:docs-outline","\u002Fdocs\u002Fdocker\u002Fresources","docs\u002F4.docker\u002F5.resources",[143],{"title":144,"path":145,"stem":146,"description":147},"Docker 命令大全","\u002Fdocs\u002Fdocker\u002Fresources\u002Fdocker-command","docs\u002F4.docker\u002F5.resources\u002F1.docker-command","下面介绍Docker常见的基础命令。",{"title":149,"path":150,"stem":151,"children":152,"description":156,"icon":157},"Linux","\u002Fdocs\u002Flinux","docs\u002F5.Linux\u002F1.index",[153],{"title":154,"path":150,"stem":151,"description":155},"1.dnf和yum区别","一句话概括：dnf 是 yum 的下一代升级版，你可以把 dnf 看作\"优化重构后的yum\"","Linux是免费开源、多用户多任务、高稳定性与安全性、支持多平台硬件的Unix操作系统。文档整理了Linux相关的命令和常见问题处理方法。","logos:linux-tux",{"id":159,"title":160,"body":161,"createDate":1594,"description":94,"extension":1595,"links":34,"meta":1596,"navigation":1597,"path":92,"readingTime":1598,"seo":1599,"sitemap":1600,"stem":93,"updateDate":1601,"wordCount":1602,"__hash__":1603},"docs\u002Fdocs\u002F4.docker\u002F1.basic\u002F4.docker-context.md","Docker Context 完全指南",{"type":162,"value":163,"toc":1565},"minimark",[164,169,173,176,180,185,188,192,195,224,228,231,234,239,242,250,291,299,413,418,421,426,430,433,525,529,533,541,585,589,596,608,648,655,665,699,705,712,722,758,765,768,787,790,794,806,823,826,830,838,857,861,869,1085,1089,1099,1115,1119,1130,1156,1160,1175,1194,1198,1213,1243,1247,1250,1331,1335,1339,1342,1388,1392,1436,1440,1478,1482,1485,1502,1506,1512,1515,1518,1524,1527,1530,1536,1539,1542,1548,1551,1554,1558,1561],[165,166,168],"h2",{"id":167},"_1-什么是docker-context","1. 什么是Docker Context",[170,171,172],"p",{},"Context 本质上是一个命名配置项，存储了 Docker 客户端连接目标 Docker 守护进程所需的所有信息，包括端点地址、安全凭证、TLS 证书等。",[170,174,175],{},"你可以根据需求创建多个命名上下文，分别指向不同的 Docker 环境（如本地、远程服务器、Kubernetes 集群、Swarm 集群等），然后通过一条命令在它们之间快速切换。Docker 安装完成后会自动创建一个名为 default 的默认上下文，指向本地的 Docker 守护进程。",[165,177,179],{"id":178},"_2-为什么需要docker-context","2. 为什么需要Docker Context?",[181,182,184],"h3",{"id":183},"_21-传统方式的痛点","2.1 传统方式的痛点",[170,186,187],{},"在 Docker Context 出现之前，管理多个 Docker 环境（比如本地开发机和远程生产服务器）通常需要手动设置 DOCKER_HOST 等环境变量，操作繁琐且容易出错。每次切换环境都要重新配置连接参数，不仅效率低下，还增加了误操作的风险。",[181,189,191],{"id":190},"_22-docker-context-的解决方案","2.2 Docker Context 的解决方案",[170,193,194],{},"Docker Context 就像一个\"遥控器\"——将每个环境的连接信息（地址、密钥等）保存为一个独立的\"频道\"（即 Context），你只需要执行一条命令就能在多个环境间无缝切换。它带来的核心价值包括：",[196,197,198,206,212,218],"ul",{},[199,200,201,205],"li",{},[202,203,204],"strong",{},"简化多环境管理："," 为开发、测试、预发布、生产等不同环境分别创建 Context，一键切换，无需记忆和输入复杂的连接参数。",[199,207,208,211],{},[202,209,210],{},"支持多种后端："," Context 不仅支持单个 Docker 守护进程，还可以连接到 Docker Swarm 集群和 Kubernetes 集群，实现用一套 docker 命令同时管理容器和 Kubernetes 资源。",[199,213,214,217],{},[202,215,216],{},"便于团队协作与分享："," 可将配置好的 Context 导出为文件并分享给团队成员，确保团队使用统一的环境配置，减少因环境差异导致的问题。",[199,219,220,223],{},[202,221,222],{},"提升安全性："," Context 可以安全地存储连接远程 Docker 守护进程所需的 TLS 证书和密钥，避免在命令行中直接暴露敏感信息。",[165,225,227],{"id":226},"_3-准备工作安装-docker-cli","3. 准备工作安装 Docker CLI",[170,229,230],{},"在使用 Docker Context 命令之前，首先需要确保本地安装了 Docker 客户端（CLI）。如果你已经安装了 Docker Desktop 或 Docker Engine，可以跳过此节。",[170,232,233],{},"如果不想安装几百兆的 Docker Desktop，以下是几种更轻量的方案。",[170,235,236],{},[202,237,238],{},"⚙️ 方案一：只安装 Docker CLI（最轻量，命令行）",[170,240,241],{},"这是最纯粹、最轻量的方案——只安装 Docker 的命令行客户端，不包含 Docker 守护进程和图形界面。既然使用 Docker Context 主要是为了连接远程 Docker 环境，那么只需要 docker 命令就够了。",[243,244,245],"ol",{},[199,246,247],{},[202,248,249],{},"Windows系统",[196,251,252,273,279,285],{},[199,253,254,257,258,266,267,272],{},[202,255,256],{},"下载二进制文件："," 从 Docker 官方下载最新的二进制文件的.zip压缩包，点击前往：",[259,260,265],"a",{"href":261,"rel":262,"target":264},"https:\u002F\u002Fdownload.docker.com\u002Fwin\u002Fstatic\u002Fstable\u002Fx86_64\u002F",[263],"nofollow","blank","Docker 官网 Windows 二进制包","，例如当前最新：",[259,268,271],{"href":269,"rel":270,"target":264},"https:\u002F\u002Fdownload.docker.com\u002Fwin\u002Fstatic\u002Fstable\u002Fx86_64\u002Fdocker-29.6.1.zip",[263],"docker-29.6.1.zip","。",[199,274,275,278],{},[202,276,277],{},"解压缩包："," 将下载的压缩包解压，提取其中的 docker.exe 文件。",[199,280,281,284],{},[202,282,283],{},"配置环境变量："," 将 docker.exe 放入 C:\\Windows\\System32\\ 目录（该目录默认已在系统 PATH 中），或将其所在目录添加到系统 PATH 环境变量中。",[199,286,287,290],{},[202,288,289],{},"验证安装："," 打开终端，执行 docker -v，若显示版本信息则表示安装成功。",[243,292,294],{"start":293},2,[199,295,296],{},[202,297,298],{},"Linux\u002FmacOS系统",[196,300,301,327,409],{},[199,302,303,305,306],{},[202,304,256],{}," 访问 Docker 官方静态二进制文件下载地址，选择适合你系统和架构的版本。\n",[196,307,308,318],{},[199,309,310,313,314],{},[202,311,312],{},"Linux："," ",[259,315,316],{"href":316,"rel":317},"https:\u002F\u002Fdownload.docker.com\u002Flinux\u002Fstatic\u002Fstable\u002Fx86_64\u002F",[263],[199,319,320,313,323],{},[202,321,322],{},"macOS：",[259,324,325],{"href":325,"rel":326},"https:\u002F\u002Fdownload.docker.com\u002Fmac\u002Fstatic\u002Fstable\u002Fx86_64\u002F",[263],[199,328,329,332],{},[202,330,331],{},"解压并安装：",[333,334,339],"pre",{"className":335,"code":336,"language":337,"meta":338,"style":338},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# 解压下载的文件\ntar xzvf docker-\u003C版本号>.tgz\n\n# 将解压出的 docker 二进制文件移动到系统的 PATH 路径下 (如 \u002Fusr\u002Flocal\u002Fbin)\nsudo cp docker\u002Fdocker \u002Fusr\u002Flocal\u002Fbin\u002F\n","bash","",[340,341,342,351,381,388,394],"code",{"__ignoreMap":338},[343,344,347],"span",{"class":345,"line":346},"line",1,[343,348,350],{"class":349},"sHwdD","# 解压下载的文件\n",[343,352,353,357,361,364,368,371,375,378],{"class":345,"line":293},[343,354,356],{"class":355},"sBMFI","tar",[343,358,360],{"class":359},"sfazB"," xzvf",[343,362,363],{"class":359}," docker-",[343,365,367],{"class":366},"sMK4o","\u003C",[343,369,370],{"class":359},"版本",[343,372,374],{"class":373},"sTEyZ","号",[343,376,377],{"class":366},">",[343,379,380],{"class":359},".tgz\n",[343,382,384],{"class":345,"line":383},3,[343,385,387],{"emptyLinePlaceholder":386},true,"\n",[343,389,391],{"class":345,"line":390},4,[343,392,393],{"class":349},"# 将解压出的 docker 二进制文件移动到系统的 PATH 路径下 (如 \u002Fusr\u002Flocal\u002Fbin)\n",[343,395,397,400,403,406],{"class":345,"line":396},5,[343,398,399],{"class":355},"sudo",[343,401,402],{"class":359}," cp",[343,404,405],{"class":359}," docker\u002Fdocker",[343,407,408],{"class":359}," \u002Fusr\u002Flocal\u002Fbin\u002F\n",[199,410,411,290],{},[202,412,289],{},[170,414,415],{},[202,416,417],{},"🖥️ 方案二：轻量级 Docker Desktop 替代品（有界面）",[170,419,420],{},"如果你还是想要一个图形界面来辅助管理，有一些比 Docker Desktop 更轻量的替代品：",[196,422,423],{},[199,424,425],{},"Rancher Desktop：由 SUSE 开发的轻量级 Docker Desktop 开源替代品，内置了 Linux 操作系统、容器引擎、网络与存储管理以及 Kubernetes 编排系统。",[165,427,429],{"id":428},"_4-docker-context核心命令速查","4. Docker Context核心命令速查",[170,431,432],{},"Docker Context 提供了一套完整的命令体系。",[434,435,436,449],"table",{},[437,438,439],"thead",{},[440,441,442,446],"tr",{},[443,444,445],"th",{},"命令",[443,447,448],{},"说明",[450,451,452,461,469,477,485,493,501,509,517],"tbody",{},[440,453,454,458],{},[455,456,457],"td",{},"docker context create",[455,459,460],{},"创建一个新的上下文",[440,462,463,466],{},[455,464,465],{},"docker context ls",[455,467,468],{},"列出所有可用的上下文",[440,470,471,474],{},[455,472,473],{},"docker context use",[455,475,476],{},"切换到指定的上下文",[440,478,479,482],{},[455,480,481],{},"docker context show",[455,483,484],{},"显示当前使用的上下文名称",[440,486,487,490],{},[455,488,489],{},"docker context inspect",[455,491,492],{},"查看一个或多个上下文的详细信息",[440,494,495,498],{},[455,496,497],{},"docker context update",[455,499,500],{},"更新已有上下文的配置",[440,502,503,506],{},[455,504,505],{},"docker context rm",[455,507,508],{},"删除一个或多个上下文",[440,510,511,514],{},[455,512,513],{},"docker context export",[455,515,516],{},"将上下文导出为 tar 归档文件",[440,518,519,522],{},[455,520,521],{},"docker context import",[455,523,524],{},"从 tar 或 zip 文件导入上下文",[165,526,528],{"id":527},"_5-docker-context-实战操作","5 Docker Context 实战操作",[181,530,532],{"id":531},"_51-查看所有-context","5.1 查看所有 Context",[196,534,535,538],{},[199,536,537],{},"命令格式：docker context ls",[199,539,540],{},"执行示例：列出本地所有可用的上下文，* 代表当前正在使用的上下文。",[333,542,544],{"className":335,"code":543,"language":337,"meta":338,"style":338},"docker context ls\nNAME        DESCRIPTION                               DOCKER ENDPOINT               ERROR\ndefault *                                             unix:\u002F\u002F\u002Fvar\u002Frun\u002Fdocker.sock\n",[340,545,546,557,574],{"__ignoreMap":338},[343,547,548,551,554],{"class":345,"line":346},[343,549,550],{"class":355},"docker",[343,552,553],{"class":359}," context",[343,555,556],{"class":359}," ls\n",[343,558,559,562,565,568,571],{"class":345,"line":293},[343,560,561],{"class":355},"NAME",[343,563,564],{"class":359},"        DESCRIPTION",[343,566,567],{"class":359},"                               DOCKER",[343,569,570],{"class":359}," ENDPOINT",[343,572,573],{"class":359},"               ERROR\n",[343,575,576,579,582],{"class":345,"line":383},[343,577,578],{"class":355},"default",[343,580,581],{"class":373}," *",[343,583,584],{"class":359},"                                             unix:\u002F\u002F\u002Fvar\u002Frun\u002Fdocker.sock\n",[181,586,588],{"id":587},"_52-创建新的-context","5.2 创建新的 Context",[243,590,591],{},[199,592,593],{},[202,594,595],{},"通过 SSH 连接远程 Docker 守护进程",[196,597,598,601],{},[199,599,600],{},"命令格式： docker context create \u003C名称> --description \u003C描述信息> --docker host=\u003C端点地址>",[199,602,603,604,607],{},"执行示例：创建一个名为 ",[340,605,606],{},"ssh-docker","，通过 SSH 连接远程 Docker 守护进程。",[333,609,611],{"className":335,"code":610,"language":337,"meta":338,"style":338},"docker context create ssh-docker --description \"虚拟机远程Docker-SSH\" --docker \"host=ssh:\u002F\u002Fuser@192.168.1.7\"\n",[340,612,613],{"__ignoreMap":338},[343,614,615,617,619,622,625,628,631,634,637,640,642,645],{"class":345,"line":346},[343,616,550],{"class":355},[343,618,553],{"class":359},[343,620,621],{"class":359}," create",[343,623,624],{"class":359}," ssh-docker",[343,626,627],{"class":359}," --description",[343,629,630],{"class":366}," \"",[343,632,633],{"class":359},"虚拟机远程Docker-SSH",[343,635,636],{"class":366},"\"",[343,638,639],{"class":359}," --docker",[343,641,630],{"class":366},[343,643,644],{"class":359},"host=ssh:\u002F\u002Fuser@192.168.1.7",[343,646,647],{"class":366},"\"\n",[243,649,650],{"start":293},[199,651,652],{},[202,653,654],{},"通过 TCP 连接远程 Docker 守护进程(不带 TLS 认证)",[196,656,657,659],{},[199,658,600],{},[199,660,603,661,664],{},[340,662,663],{},"tcp-docker","，通过 TCP 连接远程 Docker 守护进程(不带 TLS 认证)。",[333,666,668],{"className":335,"code":667,"language":337,"meta":338,"style":338},"docker context create tcp-docker --description \"虚拟机远程Docker-TCP\" --docker \"host=tcp:\u002F\u002F192.168.1.7:2375\"\n",[340,669,670],{"__ignoreMap":338},[343,671,672,674,676,678,681,683,685,688,690,692,694,697],{"class":345,"line":346},[343,673,550],{"class":355},[343,675,553],{"class":359},[343,677,621],{"class":359},[343,679,680],{"class":359}," tcp-docker",[343,682,627],{"class":359},[343,684,630],{"class":366},[343,686,687],{"class":359},"虚拟机远程Docker-TCP",[343,689,636],{"class":366},[343,691,639],{"class":359},[343,693,630],{"class":366},[343,695,696],{"class":359},"host=tcp:\u002F\u002F192.168.1.7:2375",[343,698,647],{"class":366},[700,701,702],"warning",{},[170,703,704],{},"安全警告：此方式无加密和身份校验，仅可在完全隔离的可信内网中使用，绝对禁止暴露到公网。",[243,706,707],{"start":383},[199,708,709],{},[202,710,711],{},"通过 TCP 连接远程 Docker 守护进程(TLS 认证)",[196,713,714,716],{},[199,715,600],{},[199,717,603,718,721],{},[340,719,720],{},"tcp-docker-tls","，过 TCP 连接远程 Docker 守护进程(TLS 认证)。",[333,723,725],{"className":335,"code":724,"language":337,"meta":338,"style":338},"docker context create tcp-docker-tls  --description \"虚拟机远程Docker-TCP-TLS\"  --docker \"host=tcp:\u002F\u002F192.168.1.7:2376,ca=C:\u002FUsers\u002FAdministrator\u002F.docker\u002Fcerts\u002Fca.pem,cert=C:\u002FUsers\u002FAdministrator\u002F.docker\u002Fcerts\u002Fcert.pem,key=C:\u002FUsers\u002FAdministrator\u002F.docker\u002Fcerts\u002Fkey.pem\"\n",[340,726,727],{"__ignoreMap":338},[343,728,729,731,733,735,738,741,743,746,748,751,753,756],{"class":345,"line":346},[343,730,550],{"class":355},[343,732,553],{"class":359},[343,734,621],{"class":359},[343,736,737],{"class":359}," tcp-docker-tls",[343,739,740],{"class":359},"  --description",[343,742,630],{"class":366},[343,744,745],{"class":359},"虚拟机远程Docker-TCP-TLS",[343,747,636],{"class":366},[343,749,750],{"class":359},"  --docker",[343,752,630],{"class":366},[343,754,755],{"class":359},"host=tcp:\u002F\u002F192.168.1.7:2376,ca=C:\u002FUsers\u002FAdministrator\u002F.docker\u002Fcerts\u002Fca.pem,cert=C:\u002FUsers\u002FAdministrator\u002F.docker\u002Fcerts\u002Fcert.pem,key=C:\u002FUsers\u002FAdministrator\u002F.docker\u002Fcerts\u002Fkey.pem",[343,757,647],{"class":366},[243,759,760],{"start":390},[199,761,762],{},[202,763,764],{},"基于现有上下文创建",[170,766,767],{},"基于现有的 production 上下文（Context）的配置，复制并创建一个新的名为 staging 的上下文。",[333,769,771],{"className":335,"code":770,"language":337,"meta":338,"style":338},"docker context create staging --from=production\n",[340,772,773],{"__ignoreMap":338},[343,774,775,777,779,781,784],{"class":345,"line":346},[343,776,550],{"class":355},[343,778,553],{"class":359},[343,780,621],{"class":359},[343,782,783],{"class":359}," staging",[343,785,786],{"class":359}," --from=production\n",[170,788,789],{},"这样做最大的好处是 省去重复输入的麻烦。假设你的生产环境配置非常复杂，包含了长长的 TLS 证书路径信息，只是 IP 地址不同，那么你就可以先基于现有的上下文创建一个新的，然后修改IP。",[181,791,793],{"id":792},"_53-切换到指定-context","5.3 切换到指定 Context",[196,795,796,799],{},[199,797,798],{},"命令格式：docker context use \u003C名称>",[199,800,801,802,805],{},"执行示例：切换到名为",[340,803,804],{},"docker-test","上下文",[333,807,809],{"className":335,"code":808,"language":337,"meta":338,"style":338},"docker context use docker-test\n",[340,810,811],{"__ignoreMap":338},[343,812,813,815,817,820],{"class":345,"line":346},[343,814,550],{"class":355},[343,816,553],{"class":359},[343,818,819],{"class":359}," use",[343,821,822],{"class":359}," docker-test\n",[170,824,825],{},"切换后，后续所有 docker 命令都将自动作用于目标环境。",[181,827,829],{"id":828},"_54-查看当前-context","5.4 查看当前 Context",[196,831,832,835],{},[199,833,834],{},"命令格式：docker context show",[199,836,837],{},"执行示例：查看当前正在使用的上下文名称",[333,839,841],{"className":335,"code":840,"language":337,"meta":338,"style":338},"docker context show\ndocker-test\n",[340,842,843,852],{"__ignoreMap":338},[343,844,845,847,849],{"class":345,"line":346},[343,846,550],{"class":355},[343,848,553],{"class":359},[343,850,851],{"class":359}," show\n",[343,853,854],{"class":345,"line":293},[343,855,856],{"class":355},"docker-test\n",[181,858,860],{"id":859},"_55-查看-context-详情","5.5 查看 Context 详情",[196,862,863,866],{},[199,864,865],{},"命令格式：docker context inspect \u003C名称>",[199,867,868],{},"执行示例：查看默认上下文详情",[333,870,872],{"className":335,"code":871,"language":337,"meta":338,"style":338},"docker context inspect default\n[\n    {\n        \"Name\": \"default\",\n        \"Metadata\": {},\n        \"Endpoints\": {\n            \"docker\": {\n                \"Host\": \"unix:\u002F\u002F\u002Fvar\u002Frun\u002Fdocker.sock\",\n                \"SkipTLSVerify\": false\n            }\n        },\n        \"TLSMaterial\": {},\n        \"Storage\": {\n            \"MetadataPath\": \"\\u003cIN MEMORY\\u003e\",\n            \"TLSPath\": \"\\u003cIN MEMORY\\u003e\"\n        }\n    }\n]\n",[340,873,874,886,891,896,918,930,943,955,977,992,998,1004,1016,1028,1049,1067,1073,1079],{"__ignoreMap":338},[343,875,876,878,880,883],{"class":345,"line":346},[343,877,550],{"class":355},[343,879,553],{"class":359},[343,881,882],{"class":359}," inspect",[343,884,885],{"class":359}," default\n",[343,887,888],{"class":345,"line":293},[343,889,890],{"class":366},"[\n",[343,892,893],{"class":345,"line":383},[343,894,895],{"class":373},"    {\n",[343,897,898,901,904,906,909,911,913,915],{"class":345,"line":390},[343,899,900],{"class":366},"        \"",[343,902,903],{"class":359},"Name",[343,905,636],{"class":366},[343,907,908],{"class":373},": ",[343,910,636],{"class":366},[343,912,578],{"class":359},[343,914,636],{"class":366},[343,916,917],{"class":373},",\n",[343,919,920,922,925,927],{"class":345,"line":396},[343,921,900],{"class":366},[343,923,924],{"class":359},"Metadata",[343,926,636],{"class":366},[343,928,929],{"class":373},": {},\n",[343,931,933,935,938,940],{"class":345,"line":932},6,[343,934,900],{"class":366},[343,936,937],{"class":359},"Endpoints",[343,939,636],{"class":366},[343,941,942],{"class":373},": {\n",[343,944,946,949,951,953],{"class":345,"line":945},7,[343,947,948],{"class":366},"            \"",[343,950,550],{"class":359},[343,952,636],{"class":366},[343,954,942],{"class":373},[343,956,958,961,964,966,968,970,973,975],{"class":345,"line":957},8,[343,959,960],{"class":366},"                \"",[343,962,963],{"class":359},"Host",[343,965,636],{"class":366},[343,967,908],{"class":373},[343,969,636],{"class":366},[343,971,972],{"class":359},"unix:\u002F\u002F\u002Fvar\u002Frun\u002Fdocker.sock",[343,974,636],{"class":366},[343,976,917],{"class":373},[343,978,980,982,985,987,989],{"class":345,"line":979},9,[343,981,960],{"class":366},[343,983,984],{"class":359},"SkipTLSVerify",[343,986,636],{"class":366},[343,988,908],{"class":373},[343,990,991],{"class":366},"false\n",[343,993,995],{"class":345,"line":994},10,[343,996,997],{"class":373},"            }\n",[343,999,1001],{"class":345,"line":1000},11,[343,1002,1003],{"class":373},"        },\n",[343,1005,1007,1009,1012,1014],{"class":345,"line":1006},12,[343,1008,900],{"class":366},[343,1010,1011],{"class":359},"TLSMaterial",[343,1013,636],{"class":366},[343,1015,929],{"class":373},[343,1017,1019,1021,1024,1026],{"class":345,"line":1018},13,[343,1020,900],{"class":366},[343,1022,1023],{"class":359},"Storage",[343,1025,636],{"class":366},[343,1027,942],{"class":373},[343,1029,1031,1033,1036,1038,1040,1042,1045,1047],{"class":345,"line":1030},14,[343,1032,948],{"class":366},[343,1034,1035],{"class":359},"MetadataPath",[343,1037,636],{"class":366},[343,1039,908],{"class":373},[343,1041,636],{"class":366},[343,1043,1044],{"class":359},"\\u003cIN MEMORY\\u003e",[343,1046,636],{"class":366},[343,1048,917],{"class":373},[343,1050,1052,1054,1057,1059,1061,1063,1065],{"class":345,"line":1051},15,[343,1053,948],{"class":366},[343,1055,1056],{"class":359},"TLSPath",[343,1058,636],{"class":366},[343,1060,908],{"class":373},[343,1062,636],{"class":366},[343,1064,1044],{"class":359},[343,1066,647],{"class":366},[343,1068,1070],{"class":345,"line":1069},16,[343,1071,1072],{"class":373},"        }\n",[343,1074,1076],{"class":345,"line":1075},17,[343,1077,1078],{"class":373},"    }\n",[343,1080,1082],{"class":345,"line":1081},18,[343,1083,1084],{"class":366},"]\n",[181,1086,1088],{"id":1087},"_56-删除-context","5.6 删除 Context",[196,1090,1091,1094],{},[199,1092,1093],{},"命令格式： docker context rm \u003C名称>",[199,1095,1096,1097,805],{},"执行示例： 删除名为",[340,1098,804],{},[333,1100,1102],{"className":335,"code":1101,"language":337,"meta":338,"style":338},"docker context rm docker-test\n",[340,1103,1104],{"__ignoreMap":338},[343,1105,1106,1108,1110,1113],{"class":345,"line":346},[343,1107,550],{"class":355},[343,1109,553],{"class":359},[343,1111,1112],{"class":359}," rm",[343,1114,822],{"class":359},[181,1116,1118],{"id":1117},"_57-更新-context","5.7 更新 Context",[196,1120,1121,1124],{},[199,1122,1123],{},"命令格式：docker context update \u003C名称> --description \u003C描述信息> --docker host=\u003C端点地址>",[199,1125,1126,1127,1129],{},"执行示例：更新",[340,1128,804],{},"上下文描述信息",[333,1131,1133],{"className":335,"code":1132,"language":337,"meta":338,"style":338},"docker context update docker-test --description \"Test context\"\n",[340,1134,1135],{"__ignoreMap":338},[343,1136,1137,1139,1141,1144,1147,1149,1151,1154],{"class":345,"line":346},[343,1138,550],{"class":355},[343,1140,553],{"class":359},[343,1142,1143],{"class":359}," update",[343,1145,1146],{"class":359}," docker-test",[343,1148,627],{"class":359},[343,1150,630],{"class":366},[343,1152,1153],{"class":359},"Test context",[343,1155,647],{"class":366},[181,1157,1159],{"id":1158},"_58-导入-context","5.8 导入 Context",[196,1161,1162,1168],{},[199,1163,1164,1165],{},"命令格式：",[340,1166,1167],{},"docker context import \u003Cname> \u003Cfile>",[199,1169,1170,1171,1174],{},"执行示例：从",[340,1172,1173],{},"docker-test.dockercontext","备份文件中导入上下文docker-test",[333,1176,1178],{"className":335,"code":1177,"language":337,"meta":338,"style":338},"docker context import docker-test docker-test.dockercontext\n",[340,1179,1180],{"__ignoreMap":338},[343,1181,1182,1184,1186,1189,1191],{"class":345,"line":346},[343,1183,550],{"class":355},[343,1185,553],{"class":359},[343,1187,1188],{"class":359}," import",[343,1190,1146],{"class":359},[343,1192,1193],{"class":359}," docker-test.dockercontext\n",[181,1195,1197],{"id":1196},"_59-导出-context","5.9 导出 Context",[196,1199,1200,1205],{},[199,1201,1164,1202],{},[340,1203,1204],{},"docker context export \u003Cname> \u003Cfile>",[199,1206,1207,1208,1210,1211],{},"执行示例：将",[340,1209,804],{},"导出为备份文件",[340,1212,1173],{},[333,1214,1216],{"className":335,"code":1215,"language":337,"meta":338,"style":338},"docker context export docker-test\nWritten file \"docker-test.dockercontext\"\n",[340,1217,1218,1229],{"__ignoreMap":338},[343,1219,1220,1222,1224,1227],{"class":345,"line":346},[343,1221,550],{"class":355},[343,1223,553],{"class":359},[343,1225,1226],{"class":359}," export",[343,1228,822],{"class":359},[343,1230,1231,1234,1237,1239,1241],{"class":345,"line":293},[343,1232,1233],{"class":355},"Written",[343,1235,1236],{"class":359}," file",[343,1238,630],{"class":366},[343,1240,1173],{"class":359},[343,1242,647],{"class":366},[165,1244,1246],{"id":1245},"_6-支持连接的端点类型","6 支持连接的端点类型",[170,1248,1249],{},"Docker Context 支持连接多种类型的端点，以下是具体的端点类型及其适用场景：",[434,1251,1252,1264],{},[437,1253,1254],{},[440,1255,1256,1259,1261],{},[443,1257,1258],{},"端点类型",[443,1260,448],{},[443,1262,1263],{},"示例",[450,1265,1266,1276,1287,1298,1309,1320],{},[440,1267,1268,1271,1274],{},[455,1269,1270],{},"本地 Unix 套接字 (Local Unix Socket)",[455,1272,1273],{},"默认上下文使用的连接方式，用于与本地 Docker 守护进程通信,安全级别：高",[455,1275,972],{},[440,1277,1278,1281,1284],{},[455,1279,1280],{},"SSH 远程连接 (Remote over SSH)",[455,1282,1283],{},"最常用的远程连接方式。通过 SSH 隧道与远程 Docker 守护进程通信，安全且配置简单,安全级别：中高",[455,1285,1286],{},"ssh:\u002F\u002Fuser@remote-host",[440,1288,1289,1292,1295],{},[455,1290,1291],{},"TCP 明文远程连接 (Plaintext Remote over TCP)",[455,1293,1294],{},"直接通过无加密的TCP端口与Docker守护进程通信，无身份校验机制，仅可在完全隔离的可信内网临时使用，绝对禁止暴露到公网,安全级别：低",[455,1296,1297],{},"tcp:\u002F\u002Fremote-host:2375",[440,1299,1300,1303,1306],{},[455,1301,1302],{},"TCP SSL 远程连接 (Remote over TCP)",[455,1304,1305],{},"直接通过 TCP 端口与暴露的 Docker 守护进程通信。生产环境必须配合 TLS 加密，否则存在严重安全风险,安全级别：高",[455,1307,1308],{},"tcp:\u002F\u002Fremote-host:2376",[440,1310,1311,1314,1317],{},[455,1312,1313],{},"Kubernetes 集群 (Kubernetes Cluster)",[455,1315,1316],{},"Context 可以包含 Kubernetes 集群的连接信息。允许使用 docker 命令（或 kubectl）管理 K8s 集群,安全级别：高",[455,1318,1319],{},"在 docker context create 时通过 --kubernetes 参数指定",[440,1321,1322,1325,1328],{},[455,1323,1324],{},"Docker Swarm 集群 (Docker Swarm Cluster)",[455,1326,1327],{},"Context 支持连接 Docker Swarm 集群。可以管理和操作 Swarm 集群中的服务与节点,安全级别：高",[455,1329,1330],{},"通过 --default-stack-orchestrator=swarm 参数指定",[165,1332,1334],{"id":1333},"_7-最佳实践与注意事项","7 最佳实践与注意事项",[181,1336,1338],{"id":1337},"_71-命名规范","7.1 命名规范",[170,1340,1341],{},"建议为上下文采用统一的命名规范，例如：",[434,1343,1344,1354],{},[437,1345,1346],{},[440,1347,1348,1351],{},[443,1349,1350],{},"环境",[443,1352,1353],{},"推荐命名",[450,1355,1356,1364,1372,1380],{},[440,1357,1358,1361],{},[455,1359,1360],{},"本地开发环境",[455,1362,1363],{},"dev-local",[440,1365,1366,1369],{},[455,1367,1368],{},"远程开发环境",[455,1370,1371],{},"dev-remote",[440,1373,1374,1377],{},[455,1375,1376],{},"预发布环境",[455,1378,1379],{},"staging",[440,1381,1382,1385],{},[455,1383,1384],{},"生产环境",[455,1386,1387],{},"production",[181,1389,1391],{"id":1390},"_72-安全建议","7.2 安全建议",[196,1393,1394,1400,1406,1412,1418,1424,1430],{},[199,1395,1396,1399],{},[202,1397,1398],{},"导出上下文："," 导出上下文分享给他人时，不会包含密钥内容，仅保留路径引用，需确保接收方有相应的证书文件。",[199,1401,1402,1405],{},[202,1403,1404],{},"最小权限原则："," 生产环境的 Context 应使用具有最小权限的认证凭证。",[199,1407,1408,1411],{},[202,1409,1410],{},"本地开发："," 选择默认的 unix:\u002F\u002F\u002Fvar\u002Frun\u002Fdocker.sock 即可。",[199,1413,1414,1417],{},[202,1415,1416],{},"远程服务器管理："," 首选 SSH 方式，配置简单且安全，无需在远程服务器上开放额外的 TCP 端口或生成证书。",[199,1419,1420,1423],{},[202,1421,1422],{},"自动化或特殊场景："," 当无法使用 SSH 时，可考虑配置 TCP+TLS 方式。",[199,1425,1426,1429],{},[202,1427,1428],{},"容器编排环境："," 根据实际集群类型，选择 Kubernetes 或 Docker Swarm 端点。",[199,1431,1432,1435],{},[202,1433,1434],{},"避免明文 TCP："," 绝对禁止在生产环境或公网中使用明文 TCP 连接",[181,1437,1439],{"id":1438},"_73-使用技巧","7.3 使用技巧",[196,1441,1442,1466,1472],{},[199,1443,1444,1447,1448],{},[202,1445,1446],{},"临时切换："," 在执行单条命令时，可以通过 --context 参数临时指定 Context，而无需永久切换。\n",[333,1449,1451],{"className":335,"code":1450,"language":337,"meta":338,"style":338},"docker ps --context ssh-docker\n",[340,1452,1453],{"__ignoreMap":338},[343,1454,1455,1457,1460,1463],{"class":345,"line":346},[343,1456,550],{"class":355},[343,1458,1459],{"class":359}," ps",[343,1461,1462],{"class":359}," --context",[343,1464,1465],{"class":359}," ssh-docker\n",[199,1467,1468,1471],{},[202,1469,1470],{},"Compose 支持："," Docker Compose V2 完全支持 Context，切换 Context 后，docker compose up 也会自动在目标环境中执行。",[199,1473,1474,1477],{},[202,1475,1476],{},"避免误操作："," 在执行关键操作（如 rm、prune）前，建议先用 docker context show 确认当前所在环境，防止误删生产环境数据。",[181,1479,1481],{"id":1480},"_74-优先级说明","7.4 优先级说明",[170,1483,1484],{},"Docker 客户端确定目标环境的优先级顺序为:",[243,1486,1487,1490,1493,1496,1499],{},[199,1488,1489],{},"--context 命令行参数（最高优先级）",[199,1491,1492],{},"DOCKER_CONTEXT 环境变量",[199,1494,1495],{},"docker context use 设置的默认上下文",[199,1497,1498],{},"DOCKER_HOST 环境变量（兼容旧方式）",[199,1500,1501],{},"default 上下文（最低优先级）",[181,1503,1505],{"id":1504},"_75-常见问题排查","7.5 常见问题排查",[170,1507,1508,1511],{},[202,1509,1510],{},"问题一："," docker context 命令不存在。",[170,1513,1514],{},"原因：Docker 客户端版本过低（低于 19.03）。",[170,1516,1517],{},"解决方案：升级 Docker 客户端至 19.03 或更高版本。",[170,1519,1520,1523],{},[202,1521,1522],{},"问题二："," 切换 Context 后连接超时。",[170,1525,1526],{},"原因：远程 Docker 守护进程未启动、网络不通或防火墙拦截。",[170,1528,1529],{},"解决方案：确认远程 Docker 服务状态，检查网络连通性和防火墙规则。",[170,1531,1532,1535],{},[202,1533,1534],{},"问题三："," SSH 连接失败。",[170,1537,1538],{},"原因：SSH 密钥未配置、用户名\u002F密码错误或者SSH端口未开放。",[170,1540,1541],{},"解决方案：确保 SSH 密钥已正确配置，或使用 ssh:\u002F\u002Fuser@host:port 格式指定端口。",[170,1543,1544,1547],{},[202,1545,1546],{},"问题四："," TLS 证书验证失败。",[170,1549,1550],{},"原因：证书路径错误或证书已过期。",[170,1552,1553],{},"解决方案：检查证书文件路径是否正确，确认证书是否在有效期内。",[165,1555,1557],{"id":1556},"_8-总结","8 总结",[170,1559,1560],{},"Docker Context 是一个看似简单却极为实用的功能。它通过标准化的连接配置管理，让开发者能够轻松地在本地、远程、Kubernetes、Swarm 等多种 Docker 环境之间无缝切换。无论是个人开发还是团队协作，合理使用 Docker Context 都能显著提升工作效率，降低因环境混淆导致的操作风险。",[1562,1563,1564],"style",{},"html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":338,"searchDepth":383,"depth":383,"links":1566},[1567,1568,1572,1573,1574,1585,1586,1593],{"id":167,"depth":293,"text":168},{"id":178,"depth":293,"text":179,"children":1569},[1570,1571],{"id":183,"depth":383,"text":184},{"id":190,"depth":383,"text":191},{"id":226,"depth":293,"text":227},{"id":428,"depth":293,"text":429},{"id":527,"depth":293,"text":528,"children":1575},[1576,1577,1578,1579,1580,1581,1582,1583,1584],{"id":531,"depth":383,"text":532},{"id":587,"depth":383,"text":588},{"id":792,"depth":383,"text":793},{"id":828,"depth":383,"text":829},{"id":859,"depth":383,"text":860},{"id":1087,"depth":383,"text":1088},{"id":1117,"depth":383,"text":1118},{"id":1158,"depth":383,"text":1159},{"id":1196,"depth":383,"text":1197},{"id":1245,"depth":293,"text":1246},{"id":1333,"depth":293,"text":1334,"children":1587},[1588,1589,1590,1591,1592],{"id":1337,"depth":383,"text":1338},{"id":1390,"depth":383,"text":1391},{"id":1438,"depth":383,"text":1439},{"id":1480,"depth":383,"text":1481},{"id":1504,"depth":383,"text":1505},{"id":1556,"depth":293,"text":1557},"2026-07-22 11:29:00","md",{},{"title":91},16.8,{"title":160,"description":94},{"loc":92},"2026-08-18 22:41:10",3019,"G-iaI7ChsN-STYzvOsE-4PnyFxosAxkpLy4IX7BUgO0",{"data":1605,"body":1606},{},{"type":1607,"children":1608},"root",[1609],{"type":1610,"tag":170,"props":1611,"children":1612},"element",{},[1613],{"type":1614,"value":94},"text",1787625812541]