使用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
因为有效的凭据未传递给节点。