在学docker overlay网络时,在由docker-machine创建的host1和host2上 /etc/systemd/system/docker.service.d 中要配置文件10-machine.conf  , 文件内容如下,添加上红框内容,重启服务,systemctl daemon-reload   systemctl restart docker.service ,即可自动注册到machine主机的consul服务数据库上,第二个可以是 eth0:2376 

我的host2是Centos7,有这个配置文件,很容易就能注册上,但是我的host1是ubuntu14,他就有很多问题,他没有docker.service.d 文件夹,更没有配置文件。我自己创建了一个,machine 也能ssh连接到他,但他就是注册不上去,真是崩溃。

而且Ubuntu14没有systemctl命令,真是烦人,我得自己安装systemd。ubuntu14很讨厌,但由于我的虚拟机版本低,一开始只能装Ubuntu14,不兼容Ubuntu16,所以才走上了这条荆棘路。所以我尝试更新一下我的系统,成功的升级到了16.04,

apt-get update && apt-get dist-upgrade

reboot

do-release-upgrade

参考这篇文章,https://blog.csdn.net/dylloveyou/article/details/78232656

然后因为是覆盖了原先的系统,所以会有残留的服务,

一、all keys were skipped because they already exists on the remote system

首先我在ssh-copy-id 192.168.75.131 时,出现这个错误,说是在远程系统上已经存在了key,

cd ~/.ssh/ 发现authorized_key文件,查看里面内容,我没有删这个文件,而是清除了里面的内容,我怕出错,然后就成功了。

二、Failed to start Docker Application Container Engine.

接下来创建machine 时,出错了。

在host1上重启服务,发现失败。

然后肯定是上个系统残留的问题,我就 rm -rf /var/lib/docker 删掉了,然后就成功啦,哈哈。

创建好machine后,host1上就出现了这个文件,编辑配置文件,就成功注册上去了。

要注意的是,服务端编辑的是 如下路径的配置文件, 添加,-H tcp://0.0.0.0  允许来自客户端的连接,

客户端编辑的是如下路径的配置文件,添加后两个参数,我一开始就弄错了。

三、Host key verification failed

 在ssh连接host1时,出现此错误,应该是存在以前的文件,然后我就删除了 ~/.ssh/known_hosts 文件,再连接就会创建新的。

四、Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

五、docker-machine管理 —— eval $(docker-machine env host1) 命令提示符不改变

六、创建machine出错 Error detecting OS: Error getting SSH command: command:cat /etc/os-release 

七、docker-machine 安装 syntax error near unexpected token ‘newline' !DOCTYPE html 问题解决

、Centos7启动docker.service main process exited, code=exited status=1/FAILURE 

我检查了一下10-machine.conf  发现是配置文件打错了,修改一下就好了。

九、Are you trying to connect to a TLS-enabled daemon without TLS?

Cannot connect to the Docker daemon at tcp://    Is the docker daemon running?

在服务的连接客户端时,出现如下错误

在客户端连接服务端时,出现如下错误。

我也制作过CA证书,TLS证书,但就是不行,不知道怎么办了。

这是我学docker 主机管理目前以来,遇到的所有问题了。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐