更改docker-machine的URL

时间:2017-12-08 03:30:15

标签: azure docker docker-machine

我通过docker-machine create -d azure --azure-static-public-IP创建了一台机器。但我所做的是故意更改该VM的公共IP地址。通过此移动,我无法docker-machine ssh或任何与docker-machine相关的命令。好像它仍在向之前的公共IP发送请求。如何更改该IP并将其转换为新IP?我尝试了docker-machine regenerate-certs,甚至更改了config.json但没有发生任何事情......

我看到修复此问题的唯一方法是恢复该VM的先前公共IP

2 个答案:

答案 0 :(得分:1)

在" config.json"中更改IP应该没问题。例如,如果我必须在默认的docker-machine上更改我的IP,我会去这里:

/Users/arne/.docker/machine/machines/default/config.json

调整IP并运行

docker-machine regenerate-certs myVM

这应该有用。

答案 1 :(得分:0)

您的意思是当您运行Docker-machine ssh时出现此错误:

  

检查TLS连接时出错:检查和/或重新生成错误   证书:验证主机证书时出错   “13.91.60.237:2376”:x509:证书对40.112.218.127有效,   不是13.91.60.237您可以尝试使用它们重新生成它们   'docker-machine regenerate-certs [name]'。请注意,这将   触发Docker守护程序重启,这可能会停止运行容器。

在我的测试实验室中,我的第一个IP地址是40.112.218.127,然后我将其更改为13.91.60.237,收到此错误。

然后我使用此命令重新生成它:docker-machine regenerate-certs jasonvmm,如下所示:

[root@jasoncli@jasonye jasonvmm]# docker-machine regenerate-certs jasonvmm
Regenerate TLS machine certs?  Warning: this is irreversible. (y/n): y
Regenerating TLS certificates
Waiting for SSH to be available...
Detecting the provisioner...
Installing Docker...
Copying certs to the local machine directory...
Copying certs to the remote machine...
Setting Docker configuration on the remote daemon...
[root@jasoncli@jasonye jasonvmm]# docker-machine ssh jasonvmm
Welcome to Ubuntu 16.04.1 LTS (GNU/Linux 4.4.0-47-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

  Get cloud support with Ubuntu Advantage Cloud Guest:
    http://www.ubuntu.com/business/services/cloud

208 packages can be updated.
109 updates are security updates.


Last login: Fri Dec  8 06:22:09 2017 from 167.220.255.48

此外,我们可以使用此命令检查新设置:docker-machine env jasonvmm

[root@jasoncli@jasonye jasonvmm]# docker-machine env jasonvmm
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://13.91.60.237:2376"
export DOCKER_CERT_PATH="/root/.docker/machine/machines/jasonvmm"
export DOCKER_MACHINE_NAME="jasonvmm"
# Run this command to configure your shell: 
# eval $(docker-machine env jasonvmm)

请使用此脚本重新生成docker-machine regenerate-certs VMname

希望这有帮助。