在学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
然后因为是覆盖了原先的系统,所以会有残留的服务,
一、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 主机管理目前以来,遇到的所有问题了。