gpt4 book ai didi

docker - 有什么工具可以管理Docker容器按顺序启动?

转载 作者:行者123 更新时间:2023-12-04 06:27:39 25 4
gpt4 key购买 nike

我们正在尝试将我们的系统移植到容器中,目前我们尝试使用 Puppet 的 Docker 模块,但我们面临启动某些特定容器的顺序问题。
我们有一个 Web 应用程序、MySQL、NginX,然后所有内容都通过 HAproxy 连接。他们每个人都住在自己的容器里。
我们先启动一些容器,例如 MySQL 容器必须在 HAproxy 之前准备就绪。但是 HAProxy 的启动速度比 MySQL 快。 HAProxy 检查设置的 TCP 连接。因为 MySQL 还没有准备好,我们的应用程序守护进程无法启动。在外面,我们无法真正知道发生了什么,因为 HAProxy 正在运行,过一会儿其余的服务也会运行。 (我们也不能依赖pidfile,因为它是在未完全启动的阶段创建的。)
对于这种情况,我们可以使用什么工具?
或者,更好的方法是什么?

最佳答案

最简单的方法是简单地向您的容器添加一个重试策略,并确保如果它在启动时无法访问所需的资源,它将退出:

docker run -d mysql
docker run -d --restart always --link mysql:mysql nginx start_or_die.sh

此处的 start_or_die.sh 脚本将首先 ping mysql 进行健康检查,然后启动 nginx:

#!/usr/bin/env bash
set -e
mysql -u root -e 'use mydbname'
nginx -g 'daemon off;'

关于docker - 有什么工具可以管理Docker容器按顺序启动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30858067/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com