docker - Com.github.dockerjava.api.exception.DockerClientException:证书路径(DOCKER_CERT_PATH) ‘/root/.docker/certs’不存在一般讨论

标签 docker docker-api

我尝试在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/

相关文章:

docker - 在Ubuntu 16.04上无法通过unix:///var/run/docker.sock连接到Docker守护程序

docker - Dockerfile 中的命令数

php - 在 Symfony 4 应用程序中,如何将环境变量传递给服务类?

docker - 无法通过 API 返回 docker 存储库图像列表

javascript - 使用 node-docker-api 时出现错误 : connect ENOENT/var/run/docker. sock

docker - 从部署为 Kubernetes Daemonset 的 filebeat 多行登录到 ES

json - Kubernetes:拉取镜像失败。服务器向 HTTPS 客户端提供 HTTP 响应

linux - 是否有用于访问 Docker 19.03 中的 docker buildx 的 HTTP api?

python - 使用 Python Docker API 从 tar 创建 docker

mysql - docker 和 mysql : Got an error reading communication packets