如果Docker的群内设置有多个虚拟机,若在重启虚拟机时,次序与当初创建虚拟机不同的时候,使用 docker-machine ls 命令时,会显示如下结果:
root@ONE:/home/mole# docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
myvm1 - virtualbox Running tcp://192.168.99.100:2376 Unknown Unable to query docker version: Get https://192.168.99.100:2376/v1.15/version: x509: certificate is valid for 192.168.99.101, not 192.168.99.100
myvm2 - virtualbox Running tcp://192.168.99.101:2376 Unknown Unable to query docker version: Get https://192.168.99.101:2376/v1.15/version: x509: certificate is valid for 192.168.99.100, not 192.168.99.101
上述DOCKER列中显示的是 Unknown,而ERRORS列显示 Unable to query docker version: ……certificate is valid for ……。
分析原因可能是因为在启动虚拟机的过程中,Docker是依据启动次序来加载虚拟机的相关配置信息的,所以,若启动顺序发生变化,就会引发相关证书不匹配,导致问题的产生。
遇到这个问题,可以通过下列命令重新分配证书即可:
docker-machine regenerate-certs myvm1
docker-machine regenerate-certs myvm2