Com.github.dockerjava.api.exception.DockerClientException:证书path(DOCKER_CERT_PATH)'/root/.docker/certs'不存在一般性讨论

我尝试在centos 7上制作简单的docker-java应用程序。构build映像和容器调用是成功的。 这是我的代码

public class JavaClient { public static void main(String[] args) throws Exception { // TODO Auto-generated method stub DockerClientConfig config = DockerClientConfig.createDefaultConfigBuilder() .withRegistryUrl("unix:///var/run/docker.sock") .withDockerCertPath("/root/.docker/certs") .withRegistryUsername("user01") .withRegistryPassword("111111") .withRegistryEmail("user01@naver.com") .build(); DockerClient dockerClient = DockerClientBuilder.getInstance(config).build(); System.out.println(dockerClient.versionCmd()); } } 

不过,我根本找不到docker安全文件。 Docker安装,构build映像和容器调用没有问题。 但是我不知道在centos 7中的ssl文件在哪里。 这是exception消息

 Exception in thread "main" com.github.dockerjava.api.exception.DockerClientException: Certificate path (DOCKER_CERT_PATH) '/root/.docker/certs' doesn't exist. at com.github.dockerjava.core.DockerClientConfig.checkDockerCertPath(DockerClientConfig.java:112) at com.github.dockerjava.core.DockerClientConfig.(DockerClientConfig.java:85) at com.github.dockerjava.core.DockerClientConfig$DockerClientConfigBuilder.build(DockerClientConfig.java:432) at com.aaa.docker.JavaClient.main(JavaClient.java:18) 

您的build议将深受赞赏。 谢谢

你可以创build空目录“/root/.docker/certs”。

我发现另一个不需要创build目录的解决scheme。 您可以创build属性,如环境variables,并将DOCKER_TLS_VERIFY设置为“0”。 在这种情况下,docker将不会查找任何证书。

 final Properties properties = new Properties(); properties.setProperty("DOCKER_TLS_VERIFY", "0"); properties.setProperty("DOCKER_HOST", "unix:///var/run/docker.sock"); final DockerClientConfig.DockerClientConfigBuilder configBuilder = new DockerClientConfig.DockerClientConfigBuilder().withProperties(properties); return DockerClientBuilder.getInstance(configBuilder).build();