2016-03-19 17 views
1

Ich versuche, eine einfache Docker-Java-Anwendung auf Centos 7 zu erstellen und Containeraufruf sind erfolgreich. Das ist mein Code:Com.github.dockerjava.api.exception.DockerClientException: Zertifikatspfad (DOCKER_CERT_PATH) '/root/.docker/certs' existiert nicht Allgemeine Diskussionen

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("[email protected]") 
        .build(); 

     DockerClient dockerClient = DockerClientBuilder.getInstance(config).build(); 

     System.out.println(dockerClient.versionCmd()); 

    } 

} 

Allerdings kann ich die Docker-Sicherheitsdateien überhaupt nicht finden. Die Docker-Installation, das Erstellen von Images und der Container-Aufruf haben kein Problem. Aber ich weiß nicht, wo SSL-Dateien in Centos 7 sind. Dies ist die Ausnahmemeldung

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) 

Antwort

1

Sie können nur leeres Verzeichnis ‚/root/.docker/certs‘ erstellen.

Ich fand eine andere Lösung, die nicht benötigt, um Verzeichnisse zu erstellen. Sie können nur Eigenschaften wie Umgebungsvariablen erstellen und DOCKER_TLS_VERIFY auf "0" setzen. In diesem Fall sucht das Andockfenster keine Zertifikate.

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();