【问题标题】:How to connect to a remote socket in docker/engine-api?如何连接到 docker/engine-api 中的远程套接字?
【发布时间】:2016-06-30 13:53:30
【问题描述】:

我想检索远程机器的所有 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 映像

【问题讨论】:

    标签: go docker virtualization docker-compose docker-registry


    【解决方案1】:

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

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

    这个配置是DOCKER_OPTS="-H <ip_address>:<port>"(或者-H 0.0.0.0:<port>,如果你想让它监听所有接口),它取决于你运行的docker版本,你必须配置它。

    Here您可以找到更多关于在哪里配置 DOCKER_OPTS 的信息,具体取决于操作系统版本。

    希望对你有帮助!

    【讨论】:

      猜你喜欢
      • 2021-12-15
      • 1970-01-01
      • 2017-10-18
      • 2020-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-14
      相关资源
      最近更新 更多