terraform provider + docker registry v2 = 404

我试图启动一些容器使用terraform,从我自己的registry中拉动那些,但是不能通过ping pingdocker服务器validation,在那里我得到一个fugly: * Error pinging Docker server: API error (404): 404 page not found错误。

为了更好地解释这一点,我开始了docker文档指出的registry; 之后推了一个图像,并尝试使用terraform来应用非常基本的.tfconfiguration:

docker.tf

 # set provider to local registry provider "docker" { host = "http://docker.localhost.com:5000/v2/ubuntu" } # create container resource "docker_container" "test" { image = "latest" name = "test" } 

我可以使用像http://docker.localhost.com:5000/v2/ubuntu/_manifests/latest这样的URL来抽取清单和图像,但没有太多的问题,但是当运行terraform的东西南下,我得到的只是一个错误。

检查registry日志我运行terraform时看到这个:

 `172.*.*.1 - - [04/Apr/2016:18:30:28 +0000] "GET /v2/ubuntu/_ping HTTP/1.1" 404 19 "" "go-dockerclient"` 

尝试使用CURL手动相同,看看API文档,但无法find任何地方_ping正在实施,所以我现在要求的是一个绕过这个检查的方法。 有没有办法做到这一点?

到目前为止,我没有设置authentication,所以这( 我相信 )是没有authenticationBS …呢。

docker服务提供商中的docker服务器主机指向Docker守护进程,而不是docker注册中心。

terraform内部使用的go-dockerclient正在击中Docker远程API的这个端点 – https://docs.docker.com/engine/reference/api/docker_remote_api_v1.20/#ping-the-docker-server

从你的registry中拉出来,你将不得不做如下的事情:

 resource "docker_container" "test" { image = "docker.localhost.com:5000/org/some-image:latest" name = "test" }