Docker - 无法加载X509密钥对

时间:2016-04-05 18:48:46

标签: docker docker-machine

我正在OSX El Capitain 10.11.4上全新安装Docker。当我尝试使用docker的任何命令时,我收到此错误。

Could not load X509 key pair: crypto/tls: private key does not match public key. Make sure the key is not encrypted

我可以运行docker-machine,但不能启动任何docker容器。

Docker版本(目前唯一正在运行的docker命令)

Brunos-iMac:~ brunoban$ docker -v
Docker version 1.10.3, build 20f81dd

Docker机器版本

Brunos-iMac:~ brunoban$ docker-machine -v
docker-machine version 0.6.0, build e27fb87

Docker machine ls

Brunos-iMac:~ brunoban$ docker-machine ls
NAME      ACTIVE   DRIVER       STATE     URL                              SWARM   DOCKER    ERRORS
default   *        virtualbox   Running   tcp://192.168.99.100:2376           v1.10.3

Docker machine env

export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.99.100:2376"
export   DOCKER_CERT_PATH="/Users/brunoban/.docker/machine/machines/default"
export DOCKER_MACHINE_NAME="default"
# Run this command to configure your shell:
# eval $(docker-machine env)

我尝试使用docker-machine regenerate-certs重新生成证书(即使使用--force标志),但似乎没有任何工作。任何人都可以发光吗?

由于

1 个答案:

答案 0 :(得分:0)

警告::我的情况与原始问题不同,但错误消息相同。

当我尝试使用Portainer UI和合成文件添加新堆栈时,也会收到相同的错误消息。

我的方案配置如下:

  • Ubuntu 16.04.5 LTS作为O.S.主机;
  • Docker-ce版本:19.03.13(API:1.40)
  • Portainer-ce(2.0.0);
  • Portainer Agent(2.0.0);

我的docker-compose.yaml使用portainer / agent(它不能那样工作)

    version: '2'
    
    services:
    
        portainer_agent:
            image: portainer/agent
            container_name: task.agent
            volumes:
                - /var/run/docker.sock:/var/run/docker.sock
                - /var/lib/docker/volumes:/var/lib/docker/volumes
            ports:
                - "9001:9001"
            networks:
                - agent_network
            restart: always
    
        # The portainer instance for managing Docker containers locally
        # To run on localhost in standalone mode
        # https://documentation.portainer.io/v2.0/deploy/linux/#docker-standalone
        portainer:
            image: portainer/portainer-ce
            command: -H tcp://task.agent:9001 --tlsskipverify
            volumes:
                - portainer_data:/data
                - /var/run/docker.sock:/var/run/docker.sock
                - /var/lib/docker/volumes:/var/lib/docker/volumes
            ports:
                - "8000:8000"
                - "9000:9000"
            networks:
                - agent_network
            restart: always
    
    networks:
      agent_network:
        attachable: true
    
    volumes:
        portainer_data:

现在,我意识到portainer代理的目标是为docker作为集群运行时提供一种执行命令的替代解决方案。在独立模式下,不需要代理。

看着official documentation of Portainer in the "Docker Standalone" session,我发现了以下内容:

“使用以下Docker命令来部署Portainer Server;请注意,在独立主机上不需要该代理,但是,如果使用代理,它确实提供了附加功能(请参见下面的Portainer和代理场景):”

针对我的情况的解决方案

因此,我只是在不使用Agent的情况下运行Portainer,并且当我使用Portainer UI部署任何堆栈时,它都可以正常工作。

我希望这对具有相同错误消息的人有所帮助。