【发布时间】:2019-06-21 15:42:00
【问题描述】:
使用https://github.com/docker-java/docker-java 并寻找从https://docs.docker.com/v17.12/engine/reference/commandline/service_create/#options 添加--with-registry-auth 选项的方法
val createCmd = dockerClient.createServiceCmd(
ServiceSpec()
.withName("name")
.withTaskTemplate(TaskSpec()
.withContainerSpec(ContainerSpec()
.withEnv(envs)
.withImage("image")
.withMounts(mounts)
)
.withNetworks(networks)
.withPlacement(ServicePlacement()
.withConstraints(constraints))
)
)
为了进一步澄清这一点:
我正在寻找 docker-java 方法来执行此命令(这确实有效!):
docker service create --with-registry-auth --constraint 'node.labels.mynodeid==7' myprivateregistry.foo:5000/imagename:latest
像这样删除--with-registry-auth
docker service create --constraint 'node.labels.mynodeid==7' myprivateregistry.foo:5000/imagename:latest
会出现这个错误:No such image: myprivateregistry.foo:5000/imagename:latest,因为凭证是有效的顺便说一句,没有传递给节点。
【问题讨论】:
-
请说明您在使用此代码时遇到了什么错误。
-
我没有收到任何错误。我只是不知道如何使用 docker-java API 添加提到的标志。搜索了文档和源代码,但没有找到任何东西。
-
如果您的 dockerClient 对象本身提供了注册表身份验证,可以吗?
-
使用
.withRegistryUsername(), .withRegistryPassword()构建 DockerClient 对象并没有改变任何东西。 -
这两个选项有什么问题,或者你没有输出。
标签: docker docker-java