我正在尝试使用docker go 客户端连接到谷歌容器注册表以列出和删除图像。我的 golang 应用程序也存在于 docker 容器中。这是我的 golang 应用程序的 dockerfile:FROM docker:latestUSER rootRUN apk add --update opensslADD ./data /app/dataADD ./data/docker /app/data/dockerADD mygolangapp /appRUN chmod -R a+rwx ./app/data/docker/generate_docker_cert.shRUN sh ./app/data/docker/generate_docker_cert.shENV GOOGLE_APPLICATION_CREDENTIALS ./app/data/myserviceaccount.jsonENV DOCKER_CONFIG ./app/data/dockerENV DOCKER_CERT_PATH .ENV DOCKER_HOST ????????ENTRYPOINT ["/app/mygolangapp"]这是 generate_docker_cert.sh 文件(https://gist.github.com/bradrydzewski/a6090115b3fecfc25280)这是我的 golang 代码,用于创建 docker go 客户端和列表容器。jsonBytes, err := ioutil.ReadFile(os.Getenv("GOOGLE_APPLICATION_CREDENTIALS"))if err != nil { panic(err)}dockercli, err := client.NewEnvClient()if err != nil { panic(err)}dockercli.RegistryLogin(context.Background(), types.AuthConfig{ Username: "_json_key", Password: string(jsonBytes), ServerAddress: "https://eu.gcr.io",})containers, err := dockercli.ContainerList(context.Background(), types.ContainerListOptions{})if err != nil { panic(err)}for _, container := range containers { fmt.Printf("%s %s\n", container.ID[:10], container.Image)}目前我收到此错误:error during connect: Get https://%2Fvar%2Frun%2Fdocker.sock/v1.25/containers/json?limit=0: dial tcp: lookup /var/run/docker.sock: no such host所以我在我的 docker-compose 中添加了 docker.sock 作为卷,但它不起作用?mygolangapp: build: ./mygolangapp volumes: - /var/run/docker.sock:/var/run/docker.sock我的问题是:如何在谷歌容器注册表的 golang 应用程序中使用 docker golang 客户端。我在这里做错了什么或错过了什么?DOCKER_HOST 应该是什么?
目前暂无任何回答
- 0 回答
- 0 关注
- 192 浏览
添加回答
举报
0/150
提交
取消