【问题标题】:How to connect Docker Machine to a remote Docker VirtualBox如何将 Docker 机器连接到远程 Docker VirtualBox
【发布时间】:2015-01-30 19:19:55
【问题描述】:

我正在尝试使用 Docker Machine 连接到不同主机上的 Docker VirtualBox VM。在我的本地主机上,设置成功,包括安装 Busybox 并从名为“dev”的 VM 回显“hello world”的示例,如下所示:

$ docker $(docker-machine config dev) 运行busybox echo hello world

我可以使用 Docker Machine 创建尽可能多的可比较的本地 Docker VirtualBox 虚拟机,结果也同样成功。

现在我想使用本地 Docker Machine 执行相同的操作,并在安装了 Docker Machine 和 Boot2Docker 的不同物理主机上执行 docker 命令。换句话说:我想使用我的本地 Docker Machine CLI 和远程命令,例如拉取图像并在该不同主机上运行容器。这可能吗?如果可以,怎么做?

【问题讨论】:

    标签: deployment docker remote-access boot2docker


    【解决方案1】:

    我刚刚用 dind (Docker-in-Docker) 测试了这里是 link 所以你所要做的就是在你的主机上运行它: Docker主机IP:172.17.42.1

    1. docker run --rm swarm create #get cluster_id
    2. docker run --privileged -d -p 1234:1234 -e PORT=1234 jpetazzo/dind
    3. docker -H tcp://DOCKER_HOST:1234 run -d swarm join --addr=DOCKER_HOST:1234 token://cluster_id

    你可以创建另一个节点

    1. docker run --privileged -d -p 1235:1235 -e PORT=1235 jpetazzo/dind
    2. docker -H tcp://DOCKER_HOST:1235 run -d swarm join --addr=DOCKER_HOST:1235 token://cluster_id

    3. docker run -d -p 2375:2375 swarm manage token://cluster_id

    检查一切正常 docker -H tcp://DOCKER_HOST:2375 信息

    如果你看到 2 个容器,你就成功创建了 swarm 集群和 docker 机器作为 docker 容器。

    【讨论】:

      【解决方案2】:

      这是无法做到的。为了使您的本地机器安装能够连接到机器,它必须是创建该机器的机器,以便它可以跟踪 TLS 证书和其他连接详细信息。

      VBox 驱动程序旨在用于您的本地主机。虽然类似 digitalocean 的驱动程序旨在在 digitalocean 上创建一个 VM,您可以在其中运行容器。

      如果你真的想让它工作,你可以尝试创建一个使用 SSH 在另一台计算机上执行命令的包装器,除非你不走运。

      Machine 旨在用作 docker 主机配置器。它创建准备好运行 docker 容器的服务器。

      【讨论】:

      • 要支持这样的远程配置场景,Docker Swarm 会支持吗?
      • Swarm 是一个虚拟接口,它将在多个 docker 主机之间委托您的 docker 命令,您可以针对任何 docker 主机运行它,如果它在 digitalocean、EC2 或 VBox 上运行,只要 swarm 没有区别可以连接,对于普通的 docker 客户端也是如此。因此,如果您在 TCP 套接字上发布 docker 守护程序,您可以使用笔记本电脑或 swarm 连接到它。
      • 感谢您的反映。我使用 Docker Machine 在不同的“minion”主机上创建了一个 Docker VM,并做了一个从 VirtualBox 到安全 Docker 端口(2376)的端口转发。我将 Docker 机器凭据(.client .pem 文件)复制到“管理器”主机。似乎我现在可以远程访问 Docker 环境,包括作为参数的凭据并执行远程命令。
      猜你喜欢
      • 2018-11-05
      • 1970-01-01
      • 2015-02-21
      • 2017-10-18
      • 2019-09-13
      • 1970-01-01
      • 2022-01-21
      • 2016-05-29
      • 1970-01-01
      相关资源
      最近更新 更多