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

  发布时间:2026-11-12   作者:玩站小弟   我要评论
爱的男人电影在线观看完整。

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

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

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

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

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

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

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

version: "2"

services:

      web:

&nkebsp;         build: .

          ports:

         r教;     - "80:8000"

          depends_on:

             程:; - "db"

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

&nbdosp;    db:

         image: postgres

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

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

#!/bin/sh

# waiert-for-postgres.sh

set -e

host="$1"

shift

cmd="$@"

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

>&2 echo "Postgres is unavailable - sleeping"

sleep 1

done

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

exec $cmd

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

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

  • Tag:

相关文章

  • IDC:上半年中国蓝牙耳机市场出货量同比增长27%

    10月8日消息,据IDC《中国无线耳机市场季度跟踪报告,2021年第二季度》消息,2021年上半年中国无线蓝牙耳机市场出货量为5,374万台,同比增长26.8%。 其中,真无线耳机增长速度领跑整体蓝牙
    2026-11-12
  • 月之暗面正式发布Kimi K2. 6 模型,多项指标对标全球顶尖大模型

    国产大模型领域迎来重磅更新。4月21日,月之暗面(Moonshot AI)正式发布并开源了其最新旗舰模型 Kimi K2.6。这款模型在编程能力、长程任务处理以及多Agent(智能体)协作方面实现了显
    2026-11-12
  • 云计算开发:Python练习实例-求数值

    题目 :求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制。 程序分析 :关键是计算出每一项的
    2026-11-12
  • Canalys:2024年第二季度,中国大陆云服务支出增长8%

    9月27日消息,Canalys发布数据显示,2024年第二季度,中国大陆云基础设施服务支出达到94亿美元,同比增长8%。阿里云、华为云和腾讯云继续主导市场,共占71%的市场份额。 虽然宏观经济环境导致
    2026-11-12
  • ​美国参议员提议禁止未成年人使用 AI 聊天机器人

    近日,美国两位参议员乔希・霍利(Josh Hawley)和理查德・布卢门撒尔(Richard Blumenthal)共同提出了一项名为 GUARD 法案的新立法。该法案要求所有 AI 公司对使用其聊天
    2026-11-12
  • 标签: 钉钉 阿里巴巴 陈宇森 MuleRun

    云梦级6月11日云梦级消息,6月11日,阿里巴巴宣布钉钉管理层调整:陈航卸任钉钉CEO,92年技术极客陈宇森接棒。 10日,阿里巴巴合伙人委员会在公司内网发布帖文《有情有义有成长,才是阿里文化》,对近
    2026-11-12

最新评论