docker设置容器依赖关系

docker设置容器依赖关系怎么做?一个稍微复杂点的项目,肯定不是一个单独的程序可以的,必定是许多程序组合起来的一个整体,它们之间存在一定的依赖关系。比如:nginx依赖web应用服务器tomcat,tomcat中的应用依赖mysql数据库和zookeeper配置,tomcat中的应用可能互相依赖等。

如果人工去启动多个应用,肯定是等被依赖的服务准备好以后,再去启动下一个应用/服务;但是想要服务器自动启动,就要靠脚本来检测被依赖的服务是否准备好,然后按顺序启动以后的应用/服务。

docker 容器部署方式(将各个应用部署到单独的容器中)

docker容器通过服务编排(docker-compose)的方式启动时,可以通过==depends_on==来配置被依赖容器,待被依赖的容器启动以后,才启动当前的容器。

但隐含的问题是:容器启动以后,容器中的应用不是一定的可以准备好,这中间会有时间间隔。为这个问题,我们必需判断具体的应用是否启动好了。

通过dockerize 工具来判断

在服务依赖问题上使用dockerize:

在docker-compose.yaml各个服务的command中的配置如下:

command: ["dockerize", "-wait", "/zookeeper:2181", "-wait", "/mysql:3306", "-wait",
 "", "-timeout", "1800s", "/supervisord"]

选项说明:

-wait </host:port>

-wait 参数可以添加多个,表示依赖多个服务

-timeout 1800s

-timeout 后面跟持续等待的秒数,默认是10秒

最后一个命令是各依赖服务准备好以后要执行的命令,也就是当前应用启动的命令

支持的协议有:file, tcp, tcp4, tcp6, , and unix

融亿云的容器云是通过docker技术,在集群服务器上部署容器服务实现,功能强大、简单易用,拥有上万linux镜像,秒级开通,轻量级的容器云

最后更新:2022/05/09
免责声明:本站部分内容由互联网用户自发贡献自行上传,本网站不拥有所有权,也不承认相关法律责任。
如果您发现本社区中有涉嫌抄袭的内容请发送邮件至:Hi@r1yun.cn进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。

在线评论