go - 使用 go-dockerclient 从自定义注册表下载图像挂起

标签 go docker docker-registry

我似乎无法从自定义注册表中提取数据。我做错了吗?我知道这些图像存在,我可以手动下载它们。

package main

import (
    "github.com/fsouza/go-dockerclient"
    log "github.com/Sirupsen/logrus"
)

func main() {
    log.SetFormatter(&log.JSONFormatter{})
    log.Infoln("pulling remote images.")
    pull_images()
    log.Infoln("done.")
}

var (
    gcr = "gcr.io/google_containers/"

    fluentd = docker.PullImageOptions{
        Repository: "fluentd-elasticsearch",
        Registry: gcr,
        RawJSONStream: true,
    }
    local_images = []docker.PullImageOptions{fluentd,{...}} // there is a long list of image, truncated for example.
)

func pull_images() {
    // empty config as it is not needed at this point.
    auth := docker.AuthConfiguration{}

    client, err := docker.NewClientFromEnv()
    if err != nil {
        log.Fatal(err)
    }

    for _, image := range local_images {
        log.Infof("pulling %s%s", image.Registry, image.Repository)
        err = client.PullImage(image, auth)
        if err != nil {
            log.Warnln(err)
        }
    }
}

如果我指定 docker.io 注册表并使用 Ubuntu 镜像,它会起作用,但它不适用于 Google 镜像。我可以使用 docker pull -a gcr.io/google_containers/fluentd-elasticsearch 手动拉取图像,所以我知道它存在并且可用。我没有使用我的 docker 客户端登录 Google 注册表,所以我知道允许匿名拉取。

最佳答案

存在阻止下载的网络问题。

关于go - 使用 go-dockerclient 从自定义注册表下载图像挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33696277/

相关文章:

arrays - 如何从golang中的结构数组中检索元素数组?

winapi - 如何正确调用 netapi32!NetSessionEnum()?

Docker Hub更新通知

容器名称的 Docker-Compose 问题

docker - Azure 启用内容信任会影响注册表中的现有图像吗?

regex - 在 Go 中匹配段落

go - 发送 JSON 请求以测试 beego 中的端点 API 失败,正文为空

sed - 如何从检查 docker 容器中获取暴露的端口?

docker - centos 上 docker 中内核太旧错误的解决方法是什么

mysql - 无法从本地主机连接到 Docker 中的 MySQL (Docker for Mac beta)