如何解决无法通过 docker-sdk golang 连接到 Docker 守护进程
Docker 正在运行,ContainerExecCreate
创建了一个容器,但是 ContainerExecAttach
返回:无法连接到 unix 上的 Docker 守护进程://var/run/docker.sock 作为响应。 docker 守护进程是否正在运行?
可能是什么问题。
import (
"archive/tar"
"bytes"
"context"
"fmt"
"io"
"io/IoUtil"
"log"
"net"
"os"
"strconv"
"strings"
"time"
client "docker.io/go-docker"
"docker.io/go-docker/api/types"
"docker.io/go-docker/api/types/container"
"docker.io/go-docker/api/types/network"
"docker.io/go-docker/api/types/swarm"
"docker.io/go-docker/api/types/volume"
"github.com/containerd/containerd/reference"
"github.com/play-with-docker/play-with-docker/config"
)
func (d *docker) ExecAttach(instanceName string,command []string,out io.Writer) (int,error) {
e,err := d.c.ContainerExecCreate(context.Background(),instanceName,types.ExecConfig{Cmd: command,AttachStdout: true,AttachStderr: true,Tty: true})
if err != nil {
return 0,err
}
resp,err := d.c.ContainerExecAttach(context.Background(),e.ID,types.ExecConfig{AttachStdout: true,err
}
}
解决方法
看起来很正常。可能取决于调用时 docker 的状态。可以通过 Ping 检查 docker 或等待一秒钟。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。