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