Spotify docker 客户端:如何获取启动容器的标准输出和标准错误?
Spotify docker client: How to get stdout and stderr of started container?
我知道我可以用无限循环创建容器:
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.execCreate
和docker.execStart
在此容器中执行命令。在这种情况下获取 stdout 和 stderr 不是问题。
但我想知道我是否可以让事情变得更简单。我想像这样执行 command
:
val containerConfig = ContainerConfig.builder()
.image(imageName)
.cmd(command)
.build()
val container = docker.createContainer(containerConfig)
docker.startContainer(container.id())
并获得对 stdout 和 stderr 的访问权限。可能吗?
好的,有办法做到这一点:
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()
我知道我可以用无限循环创建容器:
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.execCreate
和docker.execStart
在此容器中执行命令。在这种情况下获取 stdout 和 stderr 不是问题。
但我想知道我是否可以让事情变得更简单。我想像这样执行 command
:
val containerConfig = ContainerConfig.builder()
.image(imageName)
.cmd(command)
.build()
val container = docker.createContainer(containerConfig)
docker.startContainer(container.id())
并获得对 stdout 和 stderr 的访问权限。可能吗?
好的,有办法做到这一点:
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()