首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何判断与-d一起运行的码头容器是否已运行完CMD

如何判断与-d一起运行的码头容器是否已运行完CMD
EN

Stack Overflow用户
提问于 2015-09-10 00:04:41
回答 1查看 731关注 0票数 2

我想要制作一个简单的bash脚本,它使用-d运行一个坞容器,然后在容器已经运行完它的CMD的情况下执行其他的操作。我如何做到这一点,同时避免时间问题,因为码头容器可能需要一段时间来完成启动?

我唯一的想法是容器的Dockerfile在完成时需要在容器本身上创建某种状态,然后bash脚本可以轮询,直到状态文件存在为止。有更好的/标准的方法来做这样的事情吗?

本质上,我需要一种方法,使运行带有-d的码头容器的主机能够判断何时准备就绪。

更新

使它与跟踪日志方法一起工作,但似乎有点麻烦:

代码语言:javascript
复制
  docker run -d \
      --name sauceconnect \
      sauceconnect

  # Tail logs until 'Sauce Connect is up'
  docker logs -f sauceconnect | while read LINE
  do
    echo "$LINE"
    if [[ "$LINE" == *"Sauce Connect is up"* ]]; then
      pkill -P $$ docker
    fi
  done
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-10 01:13:05

您应该可以通过docker logs -f <containter_name_or_ID>检查日志。

代码语言:javascript
复制
-f : same as tail -f 

例如,完成了CMD,并将日志导出为JOB ABC is successfully started

您的脚本可以在得到它之后检测并运行其余的作业。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32491000

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档