【问题标题】:Spotify docker client: How to get stdout and stderr of started container?Spotify docker 客户端:如何获取已启动容器的标准输出和标准错误?
【发布时间】:2019-05-05 13:50:23
【问题描述】:

我知道我可以创建带有无限循环的容器:

val containerConfig = ContainerConfig.builder()
    .image(imageName)
    .cmd("sh", "-c", "while :; do sleep 1; done")
    .build()
val container = docker.createContainer(containerConfig)
docker.startContainer(container.id())

然后使用docker.execCreatedocker.execStart 在这个容器中执行一个命令。在这种情况下获取 stdout 和 stderr 不是问题。

但我想知道我是否可以让事情变得更简单。我想像这样执行command

val containerConfig = ContainerConfig.builder()
    .image(imageName)
    .cmd(command)
    .build()
val container = docker.createContainer(containerConfig)
docker.startContainer(container.id())

并访问标准输出和标准错误。有可能吗?

【问题讨论】:

    标签: docker spotify-docker-client


    【解决方案1】:

    好的,有办法做到这一点:

    val containerConfig = ContainerConfig.builder()
        .image(imageName)
        .cmd(command)
        .build()
    val container = docker.createContainer(containerConfig)
    docker.startContainer(container.id())
    docker.waitContainer(container.id())
    val logs = docker.logs(container.id(), stdout(), stderr())
    val output = logs.readFully()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-14
      • 1970-01-01
      • 1970-01-01
      • 2018-08-08
      • 1970-01-01
      • 2013-05-11
      相关资源
      最近更新 更多