go - 如何连接到 docker/engine-api 中的远程套接字?

标签 go docker virtualization docker-compose docker-registry

我想检索远程机器的所有 docker 图像,所以我使用 docker/engine-api:https://github.com/docker/engine-api

我成功返回了本地机器的 docker 镜像 使用以下代码:

package main

import (
    "fmt"

    "github.com/docker/engine-api/client"
    "github.com/docker/engine-api/types"
    "golang.org/x/net/context"
)

func main() {
    defaultHeaders := map[string]string{"User-Agent": "engine-api-cli-1.0"}
    cli, err := client.NewClient("unix:///var/run/docker.sock", "v1.22", nil, defaultHeaders)

    if err != nil {
        panic(err)
    }

    options := types.ContainerListOptions{All: true}
    containers, err := cli.ContainerList(context.Background(), options)
    if err != nil {
        panic(err)
    }

    for _, c := range containers {
        fmt.Println(c.ID)
    }
}

但是现在有人知道如何在给定地址、用户名和密码的情况下检索远程计算机的 docker 镜像吗

最佳答案

那种 Unix 套接字只能通过同一台机器上的进程访问。

要从远程机器访问您的 docker,您需要使用特殊配置运行它以通过 ip 运行。

这个配置是DOCKER_OPTS="-H <ip_address>:<port>" (或 -H 0.0.0.0:<port> 如果您希望它监听所有接口(interface)),这取决于您运行的 docker 版本,您必须在其中配置它。

Here您可以找到有关根据操作系统版本在何处配置 DOCKER_OPTS 的更多信息。

希望对您有所帮助!

关于go - 如何连接到 docker/engine-api 中的远程套接字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38125212/

相关文章:

virtualization - VHD(虚拟 PC)- 如何强制启动,无论 VHD 是否更改

go - 克隆节点 [golang.org/x/net/html] : Stack overflow

go - 从给定与浏览器相同的参数的页面发出 GET 请求在 golang 上不起作用

unix - docker容器共享unix抽象套接字或dbus

docker - 在 docker 容器内使用 create-react-app 运行开发服务器

debian - Xen 4.4 : "/usr/lib/xen-4.4/bin/qemu-dm" is not executable

go - 在ANTLR中创建强制 token

python - Golang 和 Python 执行 http 请求的方法之间的根本区别?

docker - 调用ListTables操作时发生错误(426): Upgrade Required

android - 将物理SIM卡虚拟成安卓手机