Spotify Docker客户端:如何获取已启动容器的stdout和stderr?

时间:2019-05-05 13:50:23

标签: docker spotify-docker-client

我知道我可以使用无限循环创建容器:

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())

并访问stdout和stderr。有可能吗?

1 个答案:

答案 0 :(得分:0)

好的,有一种方法可以做到:

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()