Golang Docker API-尾部容器日志
我使用Go和Docker的API来提取一个图像,然后创建并执行一个容器。具体来说,我使用的是图像。我可以看到它实际上是在Kitematic中执行的,所以我知道所有的设置都是正确的。但是,我的Go应用程序没有附加并跟踪正在输出的日志 我已经看到了,它引用了似乎是附加到图像和查看日志的方式。不管我怎么做,我似乎都无法让它工作Golang Docker API-尾部容器日志,docker,go,Docker,Go,我使用Go和Docker的API来提取一个图像,然后创建并执行一个容器。具体来说,我使用的是图像。我可以看到它实际上是在Kitematic中执行的,所以我知道所有的设置都是正确的。但是,我的Go应用程序没有附加并跟踪正在输出的日志 我已经看到了,它引用了似乎是附加到图像和查看日志的方式。不管我怎么做,我似乎都无法让它工作 attachToContainerOptions := docker.AttachToContainerOptions{ Container: container.ID
attachToContainerOptions := docker.AttachToContainerOptions{
Container: container.ID,
OutputStream: os.Stdout,
ErrorStream: os.Stderr,
Logs: true,
Stdout: true,
Stderr: true,
}
if err := client.AttachToContainer(attachToContainerOptions); err != nil {
panic(err)
}
没有错误发生,但是这个立即传递,没有任何流传输到控制台。在docker cmd完成之前,如何将其流式传输到控制台?并且该映像的容器生命周期是短暂的。相反,请尝试获取结果日志
下面是一个代码示例:
logsOptions := docker.LogsOptions{
Container: container.ID,
OutputStream: os.Stdout,
ErrorStream: os.Stderr,
Follow: true,
Stdout: true,
Stderr: true,
}
if err := client.Logs(logsOptions); err != nil {
panic(err)
}
该映像的容器生命周期是短暂的。相反,请尝试获取结果日志
下面是一个代码示例:
logsOptions := docker.LogsOptions{
Container: container.ID,
OutputStream: os.Stdout,
ErrorStream: os.Stderr,
Follow: true,
Stdout: true,
Stderr: true,
}
if err := client.Logs(logsOptions); err != nil {
panic(err)
}
这是正确的解决方案,我添加了一个代码示例,因为我没有看到一个在线示例作为工作示例。这是正确的解决方案,我添加了一个代码示例,因为我没有看到一个在线示例作为工作示例。