如何检查一个容器是否正在运行并因此触发另一个容器?

时间:2019-12-18 23:04:25

标签: docker

我有一个容器1,它需要一些时间才能旋转起来并准备就绪。

我有一个容器2,一旦容器1准备好就需要运行。

容器2如何在运行之前确保容器1已准备好?

这需要使用一个Cron作业来完成。

谢谢!

2 个答案:

答案 0 :(得分:1)

您可以这样做:

PATH=:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

0 0 * * * docker ...¹; until docker ps | grep '<SOME SPECIFIC STRING>; do sleep 1; done; docker run ...²

用真实的docker ...¹命令替换docker ...²docker

答案 1 :(得分:1)

您可以使用docker swarm或docker-compose。

docker-stack.yml

version: "3.7"
services:
  slow-to-start-service:
    image: xxx

  needy-service:
    image: yyy
    depends_on:           # <-- this will not start until slow-to-start-service us up
      - slow-to-start-service

crontab -e

0 * * * * docker stack deploy -c /path/to/docker-stack.yml --prune my-stack