docker設置容器依賴關系怎么做?一個稍微復雜點的項目,肯定不是一個單獨的程序可以解決的,必定是許多程序組合起來的一個整體,它們之間存在一定的依賴關系。比如:nginx依賴web應用服務器tomcat,tomcat中的應用依賴mysql數(shù)據(jù)庫和zookeeper配置,tomcat中的應用可能互相依賴等。 如果人工去啟動多個應用,肯定是等被依賴的服務準備好之后,再去啟動下一個應用/服務;但是想要服務器自動啟動,就要靠腳本來檢測被依賴的服務是否準備好,然后按順序啟動之后的應用/服務。 docker 容器部署方式(將各個應用部署到單獨的容器中) docker容器通過服務編排(docker-compose)的方式啟動時,可以通過==depends_on==來配置被依賴容器,待被依賴的容器啟動之后,才啟動當前的容器。 但隱含的問題是:容器啟動之后,容器中的應用不一定可以準備好,這中間會有時間間隔。為解決這個問題,我們必需判斷具體的應用是否啟動好了。 通過dockerize 工具來判斷 在解決服務依賴問題上使用dockerize: 在docker-compose.yaml各個服務的command中的配置如下: command: ["dockerize", "-wait", "tcp://zookeeper:2181", "-wait", "tcp://mysql:3306", "-wait", "http://apphost:8080", "-timeout", "1800s", "/usr/bin/supervisord"] 選項說明: -wait <protocol://host:port> -wait 參數(shù)可以添加多個,代表依賴多個服務 -timeout 1800s -timeout 后面跟持續(xù)等待的秒數(shù),默認是10秒 最后一個命令是各依賴服務準備好之后要執(zhí)行的命令,也就是當前應用啟動的命令 支持的協(xié)議有:file, tcp, tcp4, tcp6, http, https and unix 無憂主機的容器云是通過docker技術,在集群服務器上部署容器服務實現(xiàn),功能強大、簡單易用,擁有上萬linux鏡像,秒級開通,輕量級的容器云產(chǎn)品鏈接