[{"data":1,"prerenderedAt":491},["ShallowReactive",2],{"navigation":3,"\u002Fdocs\u002Fdocker\u002Fusage\u002Fcontainer-restart":158,"\u002Fdocs\u002Fdocker\u002Fusage\u002Fcontainer-restart-description":480},[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":470,"description":126,"extension":471,"links":34,"meta":472,"navigation":473,"path":124,"readingTime":474,"seo":475,"sitemap":476,"stem":125,"updateDate":477,"wordCount":478,"__hash__":479},"docs\u002Fdocs\u002F4.docker\u002F3.usage\u002F2.container-restart.md","Docker容器自启动策略",{"type":162,"value":163,"toc":465},"minimark",[164,169,178,194,204,258,262,268,274,288,293,296,300,306,353,358,382,388,458,461],[165,166,168],"h2",{"id":167},"_1-docker容器自启动","1. Docker容器自启动",[170,171,172,173,177],"p",{},"确保 Docker 服务自启后，还需要为每个容器单独设置策略，告诉 Docker 在服务启动或重启时如何处理它们。最推荐的方式是使用 Docker 自带的",[174,175,176],"code",{},"--restart","策略。这里有几种常用策略：",[179,180,181,185,188,191],"ul",{},[182,183,184],"li",{},"no：默认值。容器退出后不会自动重启。",[182,186,187],{},"always：容器总会自动重启，无论退出原因是什么。",[182,189,190],{},"unless-stopped：除非手动停止，否则容器总会自动重启。这是最常用的策略。",[182,192,193],{},"on-failure：仅在容器因错误非正常退出时重启，并可指定最大重试次数",[170,195,196,199,200,203],{},[174,197,198],{},"unless-stopped"," 和 ",[174,201,202],{},"always"," 在容器运行期间的行为完全一致（即容器因崩溃、报错退出时，都会自动重启），它们唯一的区别在于：Docker 服务重启后，是否恢复一个被手动停止的容器。",[205,206,207,223],"table",{},[208,209,210],"thead",{},[211,212,213,217,220],"tr",{},[214,215,216],"th",{},"场景",[214,218,219],{},"always 策略",[214,221,222],{},"unless-stopped 策略",[224,225,226,237,247],"tbody",{},[211,227,228,232,235],{},[229,230,231],"td",{},"容器运行中崩溃",[229,233,234],{},"✅ 自动重启",[229,236,234],{},[211,238,239,242,245],{},[229,240,241],{},"手动执行 docker stop 停止",[229,243,244],{},"❌ 立即停止，不会重启",[229,246,244],{},[211,248,249,252,255],{},[229,250,251],{},"系统重启 \u002F Docker 服务重启后",[229,253,254],{},"✅ 强制启动（即使你之前手动停止了它，也会自动启动）",[229,256,257],{},"❌ 保持停止（你手动停过，系统重启后就不会自动起来）",[165,259,261],{"id":260},"_2-推荐容器启动策略","2. 推荐容器启动策略",[170,263,264],{},[265,266,267],"strong",{},"为什么推荐用 unless-stopped",[170,269,270,271,273],{},"在绝大多数生产环境和日常开发中，",[174,272,198],{}," 是最佳实践。",[179,275,276,282],{},[182,277,278,281],{},[265,279,280],{},"尊重用户意图："," 你手动停掉它，说明你不想让它运行，系统重启后也不应该违背你的意愿强制启动。",[182,283,284,287],{},[265,285,286],{},"避免冲突："," 如果容器依赖某些外部挂载卷，手动停止是为了修复数据，重启后强制起来可能会造成文件占用或数据损坏。",[170,289,290],{},[265,291,292],{},"什么场景用 always？",[170,294,295],{},"只有在极少数需要“死缠烂打、无论如何都要跑起来”的核心基础服务（比如日志收集客户端、监控探针）才用 always，确保即使误操作停止了，机器一重启它也会立刻恢复。",[165,297,299],{"id":298},"_3-配置容器启动策略","3. 配置容器启动策略",[301,302,303],"ol",{},[182,304,305],{},"创建新容器时指定：在 docker run 命令中使用 --restart 参数",[307,308,313],"pre",{"className":309,"code":310,"language":311,"meta":312,"style":312},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# 创建一个无论什么原因退出都会自动重启的 Nginx 容器\ndocker run -d --restart unless-stopped --name nginx nginx\n","bash","",[174,314,315,324],{"__ignoreMap":312},[316,317,320],"span",{"class":318,"line":319},"line",1,[316,321,323],{"class":322},"sHwdD","# 创建一个无论什么原因退出都会自动重启的 Nginx 容器\n",[316,325,327,331,335,338,341,344,347,350],{"class":318,"line":326},2,[316,328,330],{"class":329},"sBMFI","docker",[316,332,334],{"class":333},"sfazB"," run",[316,336,337],{"class":333}," -d",[316,339,340],{"class":333}," --restart",[316,342,343],{"class":333}," unless-stopped",[316,345,346],{"class":333}," --name",[316,348,349],{"class":333}," nginx",[316,351,352],{"class":333}," nginx\n",[301,354,355],{"start":326},[182,356,357],{},"修改已有容器: 对已存在的容器，使用 docker update 命令更新策略",[307,359,361],{"className":309,"code":360,"language":311,"meta":312,"style":312},"# 为名为 my-nginx 的容器设置重启策略\ndocker update --restart unless-stopped my-nginx\n",[174,362,363,368],{"__ignoreMap":312},[316,364,365],{"class":318,"line":319},[316,366,367],{"class":322},"# 为名为 my-nginx 的容器设置重启策略\n",[316,369,370,372,375,377,379],{"class":318,"line":326},[316,371,330],{"class":329},[316,373,374],{"class":333}," update",[316,376,340],{"class":333},[316,378,343],{"class":333},[316,380,381],{"class":333}," my-nginx\n",[301,383,385],{"start":384},3,[182,386,387],{},"在 Docker Compose 中配置\n如果你的应用由多个容器组成，可以在 docker-compose.yml 文件中配置",[307,389,393],{"className":390,"code":391,"language":392,"meta":312,"style":312},"language-yaml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","services:\n    web:\n        image: nginx\n        restart: unless-stopped  # 在此处设置重启策略\n        ports:\n            - \"80:80\"\n","yaml",[174,394,395,405,412,422,435,443],{"__ignoreMap":312},[316,396,397,401],{"class":318,"line":319},[316,398,400],{"class":399},"swJcz","services",[316,402,404],{"class":403},"sMK4o",":\n",[316,406,407,410],{"class":318,"line":326},[316,408,409],{"class":399},"    web",[316,411,404],{"class":403},[316,413,414,417,420],{"class":318,"line":384},[316,415,416],{"class":399},"        image",[316,418,419],{"class":403},":",[316,421,352],{"class":333},[316,423,425,428,430,432],{"class":318,"line":424},4,[316,426,427],{"class":399},"        restart",[316,429,419],{"class":403},[316,431,343],{"class":333},[316,433,434],{"class":322},"  # 在此处设置重启策略\n",[316,436,438,441],{"class":318,"line":437},5,[316,439,440],{"class":399},"        ports",[316,442,404],{"class":403},[316,444,446,449,452,455],{"class":318,"line":445},6,[316,447,448],{"class":403},"            -",[316,450,451],{"class":403}," \"",[316,453,454],{"class":333},"80:80",[316,456,457],{"class":403},"\"\n",[170,459,460],{},"保存后，使用 docker compose up -d 启动服务即可。",[462,463,464],"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 .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);}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}",{"title":312,"searchDepth":384,"depth":384,"links":466},[467,468,469],{"id":167,"depth":326,"text":168},{"id":260,"depth":326,"text":261},{"id":298,"depth":326,"text":299},"2026-07-22 12:06:00","md",{},{"title":123},3.8,{"title":160,"description":126},{"loc":124},"2026-07-22 12:42:00",690,"aMeH1eQyoQG93TBeZaRhrXw1f6TJ6wP8akuQD1vWKP0",{"data":481,"body":482},{},{"type":483,"children":484},"root",[485],{"type":486,"tag":170,"props":487,"children":488},"element",{},[489],{"type":490,"value":126},"text",1787625812706]