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

Sai*_*ifi 2 virtualization go docker docker-registry docker-compose

我想检索远程计算机的所有 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)
    }
}
Run Code Online (Sandbox Code Playgroud)

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

Axe*_*ass 5

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

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

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

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

希望能帮助到你!