【问题标题】:How to check the status of docker-compose up -d command如何检查 docker-compose up -d 命令的状态
【发布时间】:2023-03-24 04:10:01
【问题描述】:

当我们运行docker-compose up-d 命令以使用docker-compose.yml 文件运行dockers 时,它开始构建镜像或从注册表中提取镜像。我们可以在终端上看到这个命令的每一步。

我正在尝试从 python 脚本运行此命令。命令成功启动,但在命令之后,我不知道该过程完成了多少。有什么方法可以监控docker-compose up -d 命令的状态,以便脚本可以让用户(正在使用脚本的人)知道该过程完成了多少,或者docker-compose 命令是否由于某些原因而失败。?

谢谢

代码:

from pexpect import pxssh

session = pxssh.pxssh()
if not session.login(ip_address,<USERNAME>, <PASSWORD>):
    print("SSH session failed on login")
    print(str(session))
else:
    print("SSH session login successfull")
    session.sendline("sudo docker-compose up -d")
    session.prompt()
    resp = session.before
    print(resp)

【问题讨论】:

  • -d 用于在后台运行容器。这不会显示所有日志。你能分享你的 Python 脚本吗?
  • AFAIK 你只能观察日志来检查进度(除了检查容器是否已经启动)。

标签: python docker docker-compose pexpect


【解决方案1】:

您可以通过以下方式查看docker-compose的日志

  1. 使用docker-compose up -d 以分离模式启动所有服务 (-d) (您不会在分离模式下看到任何日志)
  2. 使用docker-compose logs -f -t 将自己附加到所有日志 运行服务,而-f 表示您遵循日志输出和 -t 选项为您提供了不错的时间戳 (Docs)

credit

【讨论】:

  • docker-compose logs -f -tdocker-compose up -d 命令运行成功并且我们需要监控日志时很有帮助。如果docker-compose up -d 显示任何错误怎么办。这种情况下如何调试?
  • docker-compose up -d 直接在终端上运行时显示错误,以防万一失败。您正在使用 python 脚本运行它。你如何运行 shell 命令?
  • 我已经添加了我正在使用的代码。我正在使用 pexpect python 模块来连接和运行 ssh 命令。问题是如果我运行sudo apt-get install &lt;package&gt; 命令,它会正常运行并返回变量resp 中的所有内容,但是当我运行sudo docker-compose up -d 时,它只显示一些内容然后退出。
【解决方案2】:

我调试小问题的方法是运行:

docker-compose up {service_name} 

这样我可以看到单个服务的输出。如果服务有依赖项,你总是可以像这样启动多个服务:

docker-compose up {service_name1} {service_name2}

另外我使用:

docker-compose logs -f -t {service_name1}

查看已运行服务的日志,或者:

docker logs -t -f {container_name}

请注意,上面的命令需要容器名称而不是服务名称

通过这种方式,您可以确保每个服务都按预期工作,然后您可以按照其他答案中的建议以分离模式启动它们

【讨论】:

    【解决方案3】:

    我认为应该使用命令docker-compose top,可以检查结果,容器运行时不应该为空。 如果容器是stopexitCreate,它应该返回空

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-10-15
      • 1970-01-01
      • 1970-01-01
      • 2017-08-08
      • 2018-12-18
      • 1970-01-01
      • 1970-01-01
      • 2017-09-26
      相关资源
      最近更新 更多