2017-07-19 58 views
5

我推了当地码头工人形象与如何从Cloud Foundry上的私有存储库部署Docker镜像?

docker push bspartifact.artifactory.example.com/bspartifact:1.0 

我的私人码头工人枢纽。我现在如何将该映像部署到Cloud Foundry?回购利用用户名和密码进行基本认证。谢谢。

编辑:

尝试--docker户名标志导致以下错误:

Staging... 
Staging process started ... 
Failed to talk to docker registry: Get https://bspartifact.artifactory.example.com/v2/: dial tcp 10.xx.xxx.xxx:443: getsockopt: connection refused 
Failed to talk to docker registry: Get http://bspartifact.artifactory.example.com/v2/: dial tcp 10.xx.xxx.xxx:80: getsockopt: connection refused 
+0

您是否在您的注册表配对中有“码头登录”? –

+0

是的,我做到了。我也尝试过--docker-username,如下面的答案中所述。 – user3080315

+0

告诉我们'docker -v' –

回答

4

正如dkoper所述 - 您必须使用cf CLI 6.28.0或更高版本。但是您的Cloud Foundry提供商也应该支持这一点。 Cloud Foundry api版本2.82.0实现了推送Docker映像的功能。您可以使用cf api来检查您的Cloud Foundry提供商正在运行哪个api版本。

3

使用CF CLI 6.28.0或更高,运行cf push myapp -o bspartifact.artifactory.example.com/bspartifact:1.0 --docker-username myuser。这会提示你输入密码。
对于非交互式使用,请将环境属性CF_DOCKER_PASSWORD设置为您的密码,CLI将使用该密码。
有关详细信息,请参阅以下文档:http://docs.cloudfoundry.org/devguide/deploy-apps/push-docker.html#private-repo

+0

谢谢。不幸的是,这会引发错误。我将错误消息复制到我的问题中。 – user3080315

+0

请注意,所有CLI都会告诉您的目标CF从启动应用程序时指定的注册表中下载Docker镜像。所以你的注册表必须可以从Diego单元访问。错误似乎表明它不能。您的网络上的注册表是否可以从CF路由?您是否配置了应用程序安全组以允许此访问? – dkoper

+0

谢谢。奇怪的是,如果我对我的本地Docker做同样的工作。但是,如果我尝试执行此命令为CF我得到一个错误。 CF和我的集线器甚至运行在相同的环境中。 – user3080315

相关问题