【问题标题】:the command "docker-machine ls " list nothing on my mac命令“docker-machine ls”在我的 Mac 上没有列出任何内容
【发布时间】:2017-05-17 03:05:35
【问题描述】:

我为Mac安装了最新的stable docker,直接启动docker,不用虚拟盒子。我知道它一定是启动了一个虚拟机,所以我使用“docker-machine ls”来查找默认机器,但它什么也没列出。如何找到虚拟机?我的操作系统版本是 10.10.5 PS: 事实上,我没有创建任何虚拟机,但确实在“alpine-oraclejdk8”映像上运行我的 spring-boot 应用程序,这是否意味着我完全使用了 docker?我想找虚拟机的原因是我使用“nsenter”进入容器调试我的应用程序的日志但它不起作用(“nsenter”的作者告诉我需要先进入虚拟机) .所以这是我的困惑点,码头工人是如何运行的,但我在 MAC 上找不到虚拟机

【问题讨论】:

    标签: macos docker virtual-machine virtualbox docker-machine


    【解决方案1】:

    Docker for mac 不使用 docker-machine。运行并在顶部菜单栏中为您提供小鲸鱼图标的应用程序运行自己的虚拟机。这个虚拟机使用hyperkit,这是一个使用xhyve的项目,xhyve是bhyve到mac os darwin内核的一个端口。

    这不会创建任何条目以使 docker-machine 了解 vm。

    不要使用nsenter 进入您的容器,而应使用docker exec 命令。使用docker exec 的优点是它可以在没有第一个 ssh 到 docker 运行的位置的情况下工作。

    【讨论】:

    • 是的,我也在官方文档中找到了解释..非常感谢。关于如何进入容器的要点是我将我的应用程序部署到没有 bash 的“alpine-oraclejdk8:slim”图像。如果我只使用 docker exec 或 docker attach 进入容器,我不知道没有 bash 我能做什么。这就是我选择“nsenter”的原因.....最后我不得不安装一个带有 boot2docker 的虚拟机并将 docker 连接到机器....T T
    【解决方案2】:

    因为你需要创建它。

    运行命令

    docker-machine create vm1
    

    你会得到你的机器。

    要将您的 docker 客户端重定向到特定机器,请使用此命令

    eval $(docker-machine env vm1)
    

    其中“vm1”与您用于创建机器的“vm1”名称相同。您可以使用各种后端(如 virtualbox 或 aws)同时运行多个 docker 机器

    【讨论】:

    • 由 docker-machine 创建的每台机器都将运行 docker host。 docker 命令将连接到您选择的机器。
    • 但是太奇怪了,我先启动了docker,然后创建了一个虚拟机……所以docker可以在我创建虚拟机之前在mac上运行吗?
    • docker-machine 不是 docker,它只是一堆用于创建将运行 docker 的虚拟机的脚本。你在 MacOS shell 上运行的 docker 命令只是一个客户端,它不需要任何 docker 来运行
    • 是的,我知道你的意思。事实上,我没有创建任何虚拟机,但确实在“alpine-oraclejdk8”映像上运行我的 spring-boot 应用程序,这是否意味着我完全使用了 docker?我想找虚拟机的原因是我使用“nsenter”进入容器调试我的应用程序的日志但它不起作用(“nsenter”的作者告诉我需要先进入虚拟机) .所以这是我的困惑点,码头工人是如何运行的,但我在 MAC 上找不到虚拟机
    猜你喜欢
    • 1970-01-01
    • 2010-12-26
    • 1970-01-01
    • 1970-01-01
    • 2013-02-13
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多