我似乎无法从自定义注册表中提取。我做错了吗?我知道这些图像存在,我可以手动下载。
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注册表,所以我知道允许匿名拉动。
答案 0 :(得分:0)
网络问题导致无法下载。