gpt4 book ai didi

api - 如何在Golang中指定Docker API设置?

转载 作者:行者123 更新时间:2023-12-01 22:26:00 24 4
gpt4 key购买 nike

我已经在2375端口的远程ubuntu服务器上启用了API。我想开发一个使用远程Docker API的go应用程序。在示例和教程中,我看不到任何指定Docker API Server设置的选项部分。来自环境变量。(https://docs.docker.com/v17.09/develop/sdk/examples/#run-a-container)

以下代码具有此代码部分:

cli,err:= client.NewEnvClient()

我认为这里采用了Docker API设置。

我是新手程序员,感谢您的帮助。

package main

import (
"io"
"os"

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

func main() {
ctx := context.Background()
cli, err := client.NewEnvClient()
if err != nil {
panic(err)
}

_, err = cli.ImagePull(ctx, "docker.io/library/alpine", types.ImagePullOptions{})
if err != nil {
panic(err)
}

resp, err := cli.ContainerCreate(ctx, &container.Config{
Image: "alpine",
Cmd: []string{"echo", "hello world"},
}, nil, nil, "")
if err != nil {
panic(err)
}

if err := cli.ContainerStart(ctx, resp.ID, types.ContainerStartOptions{}); err != nil {
panic(err)
}

statusCh, errCh := cli.ContainerWait(ctx, resp.ID, container.WaitConditionNotRunning)
select {
case err := <-errCh:
if err != nil {
panic(err)
}
case <-statusCh:
}

out, err := cli.ContainerLogs(ctx, resp.ID, types.ContainerLogsOptions{ShowStdout: true})
if err != nil {
panic(err)
}

io.Copy(os.Stdout, out)
}

最佳答案

我使用DOCKER_HOST环境指向我的docker API地址,并且它正在运行

export DOCKER_HOST=tcp://<my-docker-ip>:<port>

关于api - 如何在Golang中指定Docker API设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59944494/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com