【问题标题】:error when setting up remote docker server设置远程 docker 服务器时出错
【发布时间】:2021-02-16 07:10:17
【问题描述】:

在我的 Pi 上,我跟随 this tutorial 在 raspbian 上安装 docker。这里有一些旁注:

  1. 我没有设置 swarm,我在 docker info 处停了下来(与其他指南一样)我成功运行了 hello world 容器。
  2. idk 如果重要,但本指南(与其他指南不同)让我编辑 /etc/apt/sources.list 并添加行:deb https://download.docker.com/linux/raspbian/ stretch stable

在我的开发机器(win 10)上,我使用this tutorial 将 docker configs 和 ymls 添加到我的 mern stack 应用程序中。然而,在本教程的多个地方,他们希望我运行 docker 命令,所以我最终不得不安装 Docker Desktop。

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

但是我得到一个错误:

C:\Users\oweng>docker-machine create --driver generic --generic-ip-address=192.168.1.2 --generic-ssh-key "%HOMEPATH%/.ssh/id_rsa" --generic-ssh-user=pi remote-docker-host 运行预创建检查...正在创建机器... (remote-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(docker 服务器)上的侦听端口时,我没有看到它正在运行

pi@raspberrypi:~ $ sudo lsof -i -P -n | grep 听 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 status docker ● docker.service - Docker 应用程序容器引擎已加载:已加载 (/lib/systemd/system/docker.service;已启用;供应商预设:已启用) 活动:自太平洋标准时间 2020 年 11 月 3 日星期二 07:18:21 起活动(运行); 3小时35分钟 前 文档:https://docs.docker.com 主 PID:496 (dockerd) 任务:13 CGroup:/system.slice/docker.service └─496 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

11 月 3 日 07:18:14 树莓派 dockerd[496]: time="2020-11-03T07:18:14.064113743-08:00" level=warning msg="你的 内核不支持 cgroup blkio throttle.w Nov 03 07:18:14 树莓派 dockerd[496]: time="2020-11-03T07:18:14.064249212-08:00" level=warning msg="你的内核不支持 cgroup blkio throttle.r 11 月 3 日 07:18:14 raspberrypi dockerd [496]: time="2020-11-03T07:18:14.064373483-08:00" level=warning msg="你的 内核不支持 cgroup blkio throttle.w Nov 03 07:18:14 树莓派 dockerd[496]: time="2020-11-03T07:18:14.066367493-08:00" level=info msg="加载容器:开始。" 11 月 3 日 07:18:17 树莓派 dockerd[496]: time="2020-11-03T07:18:17.612685200-08:00" level=info msg="默认网桥 (docker0) 分配有 IP 地址 11 月 3 日 07:18:18 raspberrypi dockerd[496]: time="2020-11-03T07:18:18.710629367-08:00" level=info msg="加载中 容器:完成。” 11 月 3 日 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 树莓派 dockerd[496]: time="2020-11-03T07:18:20.822947178-08:00" level=info msg="守护进程已完成初始化" Nov 03 07:18:21 raspberrypi systemd1:启动Docker应用容器引擎。 11 月 3 日 07:18:21 树莓派 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 --generic-ip-address=192.168.1.2:2137 --generic-ssh-key "%HOMEPATH%/.ssh/id_rsa" --generic-ssh-user=pi remote-docker-host 运行预创建检查...正在创建机器... (remote-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 visual-studio-code docker-machine mern vscode-remote


    【解决方案1】:

    我不会为此使用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
    

    【讨论】:

    • 我觉得你可能已经交换了一些东西。我的 docker 主机是 raspbian/linux。我的开发机器是windows。导出不是 Windows 命令行命令。但是我设置了一个环境变量(DOCKER_HOST),当我启动它并要求安装远程资源管理器时,VSCode 拾取了它。这让我更进一步,希望我能在这里弄清楚其余的。
    • @owengerig 我自己的桌面是 Linux,所以出于习惯我倾向于使用 Linux 命令。您可以在 Windows 上使用 bash 或 WSL2 来运行导出等命令。或者在 cmd/powershell 中使用 Windows 等效项。无论环境如何,docker context 命令都会运行。
    猜你喜欢
    • 1970-01-01
    • 2020-08-20
    • 1970-01-01
    • 2018-09-22
    • 1970-01-01
    • 2018-10-11
    • 1970-01-01
    • 1970-01-01
    • 2012-04-20
    相关资源
    最近更新 更多