gpt4 book ai didi

Docker-machine 使用通用驱动程序创建,证书不起作用但 SSH 起作用

转载 作者:行者123 更新时间:2023-12-04 07:14:58 26 4
gpt4 key购买 nike

我试图在我们的网络中的 Ubuntu 14.04TSL 服务器上启动并运行 docker-machine。我已经在服务器上安装了 docker+docker-machine,并且我能够在我的计算机上使用以下命令在服务器上创建 docker-machine:

docker-machine create --driver generic --generic-ip-address 10.10.3.76 --generic-ssh-key "/Users/username/Documents/keys/mysshkey.pem" --generic-ssh-user ubuntuuser dockermachinename

上面的命令创建了 docker-machine 并且我可以列出它
docker-machine ls

我可以通过运行 SSH 到它
docker-machine ssh dockermachinename

但是当我尝试使用(-D 用于调试信息)连接服务器时
docker-machine -D env dockermachinename

我收到以下消息
Docker Machine Version: 0.5.2 ( 0456b9f )
Found binary path at /usr/local/bin/docker-machine-driver-generic
Launching plugin server for driver generic
Plugin server listening at address 127.0.0.1:54213
() Calling .GetVersion
Using API Version 1
() Calling .SetConfigRaw
() Calling .GetMachineName
(dockermachinename) Calling .GetState
(dockermachinename) Calling .GetURL
Reading CA certificate from /Users/username/.docker/machine/certs/ca.pem
Reading server certificate from /Users/username/.docker/machine/machines/dockermachinename/server.pem
Reading server key from /Users/username/.docker/machine/machines/dockermachinename/server-key.pem
Error checking TLS connection: Error checking and/or regenerating the certs: There was an error validating certificates for host "10.10.3.76:2376": dial tcp 10.10.3.76:2376: i/o timeout
You can attempt to regenerate them using 'docker-machine regenerate-certs [name]'.
Be advised that this will trigger a Docker daemon restart which will stop running containers.

我真的需要解决这个问题,所以感谢所有帮助!

最佳答案

在 Ubuntu 上,您需要执行以下步骤:

1.创建不需要密码的用户

sudo visudo

在文件末尾添加以下行(确保指定您的用户名):
username    ALL=(ALL:ALL) NOPASSWD: ALL

然后保存退出。然后像这样将您的用户名添加到 docker 组(将 用户名 更改为您的实际用户名):
usermod -aG docker username

2.编辑docker config打开2375和2376端口
sudo systemctl edit docker.service

将以下代码段添加到该文件中:
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2376 -H tcp://0.0.0.0:2375

然后保存退出。之后重新加载配置并重新启动docker deamon:
sudo systemctl daemon-reload
sudo systemctl restart docker.service

3.创建docker-machine

删除出现故障的现有机器:
docker-machine rm machine1

并尝试像这样再次创建它:
docker-machine create -d generic --generic-ip-address ip --generic-ssh-key ~/.ssh/key --generic-ssh-user username --generic-ssh-port 22 machine1

请使用您的实际值更改 ip、 key 、用户名和 machine1。

如果这会产生这样的错误:
Error checking TLS connection: Error checking and/or regenerating the certs: There was an error validating certificates for host "192.168.0.26:2376": tls: oversized record received with length 20527
You can attempt to regenerate them using 'docker-machine regenerate-certs [name]'.
Be advised that this will trigger a Docker daemon restart which might stop running containers.

然后通过 SSH 连接到您的机器并 cd 进入以下目录:
cd /etc/systemd/system/docker.service.d/

列出其中的所有文件:
ls -l

你可能会有这样的事情:
-rw-r--r--  1 root root  274 Jul  2 17:47 10-machine.conf
-rw-r--r-- 1 root root 101 Jul 2 17:46 override.conf

您需要使用 删除除 10-machine.conf 之外的所有文件须藤 rm .

之后删除您创建的机器并再次创建它。它现在应该可以工作了。我希望这有帮助。也许您已经执行了第 1 步和第 2 步,如果是,则跳过它们并尝试删除 override.conf 文件或该目录中不是 10-machine.conf 的任何文件。

关于Docker-machine 使用通用驱动程序创建,证书不起作用但 SSH 起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35321486/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com