代码
package docker
import (
"context"
"fmt"
"github.com/docker/docker/api/types"
"github.com/docker/docker/client"
"io"
"log"
)
func Conn() io.Reader {
//创建连接
client, err := client.NewClientWithOpts(client.WithHost("unix:///var/run/docker.sock"))
if err != nil {
log.Println(err)
}
fmt.Println("err1: ", err)
//使用连接获取容器日志,返回一个io.Reader
logs, err := client.ContainerLogs(context.TODO(), "charming_knuth", types.ContainerLogsOptions{
ShowStdout: true,
ShowStderr: true,
Follow: true,
})
fmt.Println("err: ", err)
return logs
}
报错
err: Error response from daemon: client version 1.42 is too new. Maximum supported API version is 1.41
client版本太高了,指定下client版本就行
解决
client.WithVersion(“xxx”) 指定版本
package docker
import (
"context"
"fmt"
"github.com/docker/docker/api/types"
"github.com/docker/docker/client"
"io"
"log"
)
func Conn() io.Reader {
//创建连接
client, err := client.NewClientWithOpts(client.WithHost("unix:///var/run/docker.sock"), client.WithVersion("1.41"))
if err != nil {
log.Println(err)
}
fmt.Println("err1: ", err)
//使用连接获取容器日志,返回一个io.Reader
logs, err := client.ContainerLogs(context.TODO(), "charming_knuth", types.ContainerLogsOptions{
ShowStdout: true,
ShowStderr: true,
Follow: true,
})
fmt.Println("err: ", err)
return logs
}