设置远程Docker服务器时发生错误

问题描述

在我的Pi上,我跟随this tutorial在raspbian上安装docker。此处没有几条旁注:

  1. 我没有设置集群,我停在了docker info处,并且(如其他指南中所述)我成功运行了hello world容器。
  2. idk,如果需要的话,但是本指南(与其他指南不同)让我编辑了/etc/apt/sources.list添加了以下行:deb https://download.docker.com/linux/raspbian/ stretch stable

在我的开发机器上(10获胜),我使用this tutorial将docker config和ymls添加到了我的mern堆栈应用中。但是,在本教程的多个地方,他们希望我运行docker命令,所以最终我不得不安装Docker Desktop。

但是我不想使用本地容器,我想在我的Pi上使用远程容器。因此,我使用this tutorial尝试设置我的远程docker。

但是我遇到错误

C:\ Users \ oweng> docker-machine create --driver通用 --generic-ip-address = 192.168.1.2 --generic-ssh-key“%HOMEPATH%/。ssh / id_rsa” --generic-ssh-user = pi远程docker-host 运行预创建检查...正在创建机器...(远程docker-host) 导入SSH密钥...等待机器运行,这可能需要 几分钟...正在检测创建的​​实例的操作系统... 等待SSH可用...输入密钥密码 'C:\ Users \ oweng.docker \ machine \ machines \ remote-docker-host \ id_rsa': 输入密钥密码 'C:\ Users \ oweng.docker \ machine \ machines \ remote-docker-host \ id_rsa': 正在检测供应者...输入密钥的密钥 'C:\ Users \ oweng.docker \ machine \ machines \ remote-docker-host \ id_rsa': 错误创建机器:错误检测操作系统:无法识别操作系统类型

我已经在错误搜索了一下,但是没有找到解决方法

此外,在检查我的Pi(码头服务器)上的侦听端口时,我没有看到它运行

pi @ raspBerrypi:〜$ sudo lsof -i -P -n | grep LISTEN xrdp-sesm 390 根7u IPv6 14566 0t0 TCP [:: 1]:3350(LISTEN)sshd
404根3u IPv4 17224 0t0 TCP *:22(LISTEN)sshd
404根4u IPv6 17226 0t0 TCP *:22(LISTEN)xrdp
406 xrdp 11u IPv6 17302 0t0 TCP *:3389(LISTEN)

所以我觉得服务器可能没有运行?但这似乎是。

pi @ raspBerrypi:〜$ systemctl状态docker●docker.service-Docker 应用程序容器引擎已加载:已加载 (/lib/systemd/system/docker.service;已启用;供应商预设:已启用) 活动:自星期二2020-11-03 07:18:21 PST起活动(运行); 3小时35分钟 前 文件https://docs.docker.com主要PID:496(dockerd) 任务:13 CGroup:/system.slice/docker.service 496─496/ usr / bin / dockerd -H fd:// --containerd = / run / containerd / containerd.sock

Nov 03 07:18:14 raspBerrypi dockerd [496]: time =“ 2020-11-03T07:18:14.064113743-08:00” level = warning msg =“您的 内核不支持cgroup blkio节流阀。w Nov 03 07:18:14 raspBerrypi dockerd [496]:time =“ 2020-11-03T07:18:14.064249212-08:00” level = warning msg =“您的内核不支持cgroup blkio accelerator.r 11月3日07:18:14 raspBerrypi dockerd [496]: time =“ 2020-11-03T07:18:14.064373483-08:00” level = warning msg =“您的 内核不支持cgroup blkio节流阀。w Nov 03 07:18:14 raspBerrypi dockerd [496]:time =“ 2020-11-03T07:18:14.066367493-08:00” level = info msg =“正在加载容器:开始。” 11月03日07:18:17 raspBerrypi dockerd [496]:time =“ 2020-11-03T07:18:17.612685200-08:00” level = info msg =“认网桥(docker0)被分配了IP 地址Nov 03 07:18:18 raspBerrypi dockerd [496]: time =“ 2020-11-03T07:18:18.710629367-08:00” level = info msg =“正在加载 容器:完成。” Nov 03 07:18:20 raspBerrypi dockerd [496]: time =“ 2020-11-03T07:18:20.815943637-08:00” level = info msg =“ Docker 守护程序” commit = 4484c46 graphdriver(s)= overlay2 v Nov 03 07:18:20 raspBerrypi dockerd [496]:time =“ 2020-11-03T07:18:20.822947178-08:00” level = info msg =“守护进程已完成初始化” Nov 03 07:18:21 raspBerrypi systemd 1:启动了Docker应用容器引擎。 11月3日07:18:21 raspBerrypi dockerd [496]: time =“ 2020-11-03T07:18:21.273201136-08:00” level = info msg =“ API侦听 在/var/run/docker.sock上

更新1

this SO帖子之后,我似乎能够使服务器运行。编辑docker.service文件。现在,我在尝试创建时遇到了另一个错误

C:\ Users \ oweng> docker-machine create --driver通用 --generic-ip-address = 192.168.1.2:2137 --generic-ssh-key“%HOMEPATH%/。ssh / id_rsa” --generic-ssh-user = pi远程docker-host 运行预创建检查...正在创建机器...(远程docker-host) 导入SSH密钥...等待机器运行,这可能需要 几分钟...创建计算机时出错:等待计算机运行时出错 正在运行:已超过最大重试次数(60)

更新2 BMitch的评论将我引向了这两个教程,这似乎正是我想做的 https://code.visualstudio.com/docs/containers/ssh https://code.visualstudio.com/docs/containers/choosing-dev-environment#_remote-machine

解决方法

我不会使用docker-machine。对该工具的支持似乎正在消失,并且有许多更简单的方法。

最简单的方法是将计算机上的DOCKER_HOST设置为远程节点的ssh设置:

export DOCKER_HOST=ssh://user@host
docker info # should now show the remote host if you have ssh access

如果您发现自己在节点之间进行了大量更改,建议您设置一个上下文,然后将DOCKER_HOST保持未设置状态:

unset DOCKER_HOST
docker context create rpi --description "Pi" --docker "host=ssh://user@host"
docker --context rpi info

然后您可以使用

将上下文设置为新的默认值
docker context use rpi

并使用切换回本地/默认docker引擎

docker context use default