当前位置:首页 > 热点 > 云计算核心技术Docker教程:docker-compose控制服务启动和关闭顺序

云计算核心技术Docker教程:docker-compose控制服务启动和关闭顺序

2026-11-14 [企业内刊] 来源:妇人之仁网

docker-compose可以使用depends_on选项控制服务启动和关闭的顺序。撰写总是开始和依赖顺序,其中依赖性是通过确定停止容器 depends_on,links,volumes_from,和云计network_mode: "service:..."。

但是,对于启动而言,Compose不会等到容器“就绪”(对于您的特定应用程序意味着什么)之后,才等到它运行时。这是有充分的理由的。

等待数据库(例如)准备就绪算核的问题实际上只是分布式系统更大问题的一部分。在生产中,您的数据库可能随时不可用或移动主机。您的应用程序需要能够应对这些类型的故障。

要解决此问题,请设计您的应用程序以尝试在失败后重新建立与数据库的连接。如果应心技用程序重试连接,则它最终可以连接到数据库。

最好的解决方案是在启动时以及由于某种原因而断开连接时都在应用程序代码中执行此检查。但是,如果不需要此级别的弹性,则可以使用包装器脚本解决此问题:

使用诸如wait-f术Dor-it, dockerize,sh-compatible wait-for或RelayAndContainers模板之类的工具。这些是小的包装脚本,您可以在应用程序的映像中包括这些脚本,以轮询给定的主机和oc端口,直到它接受TCP连接为止。

例如,使用wait-for-it.sh或wait-for包装服务的命令:

version: "2"

services:

      web:

 ke         build: .

          ports:

            &nr教bsp; - "80:8000"

          depends_on:

              - "db"

&n程:bsp;         command: ["./wait-for-it.sh", "db:5432", "--", "python", "app.py"]

    &nbsdop;db:

         image: postgres

第一个解决方案有局限性。例如,它不验证特定服务何时真正就绪。如果您向命令添加更多参数,请将该bash shckift命令与循环一起使用,如下例所示。

或者,编写您自己的包装器脚本以执行更特定于应用程序的运行状况检查。例如,您可能要等到Postgres准备好接受命令:

#!/bin/sh

# wait-for-postgreres.sh

set -e

host="$1"

shift

cmd="$@"

until PGPASSWORD=$POSTGRES_PASSWORD psql -h "$host" -U "postgres" -c '\q'; do

>-c&2 echo "Postgres is unavailable - sleeping"

sleep 1

done

>&2 echo "Postgres is up - executing command"

exec $commd

您可以通过设置以下内容,将其用作上一个示例中的包装脚本:

command: ["./wait-for-postgres.sh", "db", "python", "app.py"]

(责任编辑:研发实力)

推荐文章
  • 标签: 英伟达 数据中心 AI 财报

    标签: 英伟达 数据中心 AI 财报 云梦级5月21日云梦级消息,英伟达今日发布 2027 财年(2026 年 1 月 26 日~2027 年 1 月 31 日)第一财季(2026 年 1 月 26 日~2026 年 4 月 26 日)报...[详细]
  • 标签: 蚂蚁集团 AI Credit 灵光 百灵大模型

    标签: 蚂蚁集团 AI Credit 灵光 百灵大模型 云梦级2月3日云梦级消息,据新浪科技报道,蚂蚁集团 CEO 韩歆毅发布全员邮件,宣布推出“AI Credit”特别激励方案,对于在 AI 方向有开创性贡献的团队和个人,将在原有绩效激励基础上给予额外的...[详细]
  • Hyland 推出企业级 AI 引擎和智能代理网,助力自动化革新

    Hyland 推出企业级 AI 引擎和智能代理网,助力自动化革新 近日,Hyland 公司正式推出了其全新的企业级 AI 引擎 —— 企业上下文引擎(Enterprise Context Engine)及智能代理网(Enterprise Agent Mesh),为企...[详细]
  • 标签: 金山软件 WPSOffice WPS365 金山办公

    标签: 金山软件 WPSOffice WPS365 金山办公 云梦级5月27日云梦级消息,金山软件今日发布 2026 财年(2026 年 1 月~2026 年 12 月)第一财季(2026 年 1 月~2026 年 3 月)报告: 营业总收入: 24.17 亿元...[详细]
  • AI实战,用Python玩个自动驾驶!

    AI实战,用Python玩个自动驾驶! 安装环境 gym是用于开发和比较强化学习算法的工具包,在python中安装gym库和其中子场景都较为简便。 安装gym: pip install gym 安装自动驾驶模块,这里使用 Edouard L...[详细]
  • 外媒爆料:FTC八年前就查明谷歌搜索垄断证据 却选择放虎归山

    外媒爆料:FTC八年前就查明谷歌搜索垄断证据 却选择放虎归山 新浪科技讯 北京时间3月17日早间消息,据报道,美国四大科技巨头(Facebook、亚马逊、谷歌和苹果)的垄断行为长期以来饱受指摘,美国、欧洲等地正展开一轮轮调查或诉讼。然而最新信息显示,美国联邦政府...[详细]
  • 标签: 擎天租 SHAREBOT 正大机器人 美格智能

    标签: 擎天租 SHAREBOT 正大机器人 美格智能 云梦级4月29日云梦级消息,29日,擎天租宣布完成Pre-A轮融资,融资金额达数亿元。本轮融资不仅包括正大集团旗下正大机器人、长信股份等产业方,还有美格智能(002881.SZ)、蓝思科技(30043...[详细]
  • 标签: 爱芯元智

    标签: 爱芯元智 云梦级2月10日云梦级消息,今天,人工智能感知与边缘计算芯片领军企业爱芯元智半导体股份有限公司(0600.HK)正式于香港交易所主板挂牌上市,成为首家在港股上市的边缘计算AI芯片企业。 爱芯元智创始人...[详细]
  • Docker Hub 中的高级镜像管理

    Docker Hub 中的高级镜像管理 我们很高兴地宣布面向 Docker Pro 和 Team 用户的最新功能,即我们在 Docker Hub 上提供的新高级图像管理仪表板。新的仪表板为开发人员提供了对您存储在 Docker Hub 中的...[详细]
  • 标签: 小鹏汽车 财报 2025年Q3 毛利率

    标签: 小鹏汽车 财报 2025年Q3 毛利率 云梦级11月17日云梦级消息,小鹏汽车今日发布 2025 年第三季度的未经审计财务业绩:营收 203.8 亿元,同比增长 102%,市场预估 204.5 亿元;净亏损为人民币 3.8 亿元,相比之下,...[详细]