我尝试在Centos 7上创建简单的Docker-Java应用程序。构建镜像和容器调用成功。这是我的代码:
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安装,构建镜像和容器调用没有问题。但是我不知道Centos 7中的SSL文件在哪里。这是异常消息
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)
最佳答案
您可以只创建一个空目录'/root/.docker/certs'。
我找到了另一个不需要创建目录的解决方案。
您可以只创建属性,例如环境变量,并将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();
关于docker - Com.github.dockerjava.api.exception.DockerClientException:证书路径(DOCKER_CERT_PATH) ‘/root/.docker/certs’不存在一般讨论,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36108447/