docker - Spotify docker 客户端:如何获取已启动容器的标准输出和标准错误?
问题描述
我知道我可以创建带有无限循环的容器:
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
然后使用and在这个容器中执行一个命令docker.execStart
。在这种情况下获取 stdout 和 stderr 不是问题。
但我想知道我是否可以让事情变得更简单。我想这样执行command
:
val containerConfig = ContainerConfig.builder()
.image(imageName)
.cmd(command)
.build()
val container = docker.createContainer(containerConfig)
docker.startContainer(container.id())
并访问标准输出和标准错误。可能吗?
解决方案
好的,有一种方法可以做到这一点:
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()
推荐阅读
- javascript - 按输入形式排序值
- iphone - iFrame 宽度在 iPhone X 中没有响应
- oxid - Oxidshop - 购物篮页面上的自定义字段
- swift - Swift 跳过“else if”
- arrays - Perl 数组哈希 - 严格的 refs
- anylogic - 为同一资源池中的各个单元定义不同的延迟时间
- c++ - c++17 中 std::destroy_at() 的用法?
- python - 使用 bash 脚本从标准输入读取文件并将读取的行传递给 python 脚本的最佳方法是什么
- c++ - 什么时候需要默认构造函数?
- android - 使用 OpenGL ES 2.0 在 Android 中更改 3D 对象的颜色