它';是否可以使用Docker机器管理MacOS Docker桌面?

它';是否可以使用Docker机器管理MacOS Docker桌面?,docker,docker-machine,docker-engine,Docker,Docker Machine,Docker Engine,我在我的Mac上安装了Docker Desktop(不是Docker Toolkit),并根据 我正在尝试添加我的本地主机Docker引擎,就像Docker机器下的Docker节点一样,但没有成功 我采取的步骤是: 在localhost中启用sshd(ssh localhostworks) 将localhost Docker添加到Docker计算机: 对不起,我的英语不是土生土长的。docker机器很危险。我不建议将其用于管理生产服务器,因为它需要无密码sudo,并且很容易损坏Docker安

我在我的Mac上安装了Docker Desktop(不是Docker Toolkit),并根据

我正在尝试添加我的本地主机Docker引擎,就像Docker机器下的Docker节点一样,但没有成功

我采取的步骤是:

  • 在localhost中启用sshd(
    ssh localhost
    works)

  • 将localhost Docker添加到Docker计算机:


  • 对不起,我的英语不是土生土长的。

    docker机器
    很危险。我不建议将其用于管理生产服务器,因为它需要无密码sudo,并且很容易损坏Docker安装。我设法从服务器上完全删除了所有容器和图像,但没有意识到我运行的命令不仅仅是连接到服务器,而是从头开始初始化它

    如果要从单个CLI控制多个Docker守护进程,请尝试

    编辑:

    的目的是使用Docker守护程序配置和管理计算机

    它既可以用于本地VM,也可以用于各种云提供商。只需一个命令,它就可以创建和启动VM,然后在新VM上安装和配置Docker(包括生成TLS证书)

    它可以创建一个完整的Docker Swarm集群

    它还可以在物理机器上安装Docker,只要SSH访问无密码sudo(这就是您尝试使用的通用驱动程序的用途)

    机器完全配置Docker后,还可以设置环境变量,配置Docker CLI以向该机器上安装的远程Docker守护程序发送命令-有关详细信息,请参阅

    最后,还可以添加不使用任何驱动程序手动配置Docker的机器-如前所述。这样做的唯一目的是在各种远程机器之间切换时允许统一的工作流

    然而,正如我之前所说的那样,docker机器是危险的-它还可以删除现有的VM,如果物理机器重新配置它们,从而删除所有现有的映像、容器等。一个简单的错误可以将服务器清除干净。更不用说它需要基于密钥的SSH和无密码的sudo,因此,如果未经授权的人获得了生产服务器的SSH密钥,那么就是这样——他们拥有对所有内容的完全根访问权限

    可以安全地将
    docker machine
    与先前存在的docker安装一起使用-您需要在不使用任何驱动程序的情况下添加它们。但是,在这个场景中,大多数
    docker machine
    命令都无法工作,因此唯一的好处是可以轻松为我前面提到的docker CLI生成这些环境变量

    是一种告诉Docker CLI应该与哪个Docker守护进程通信的新方法。它们本质上是用来替换docker machine生成的所有环境变量

    由于Docker CLI仅与Docker daemon通信,因此不存在意外删除VM或重新配置已配置的物理计算机的风险。由于它们是Docker CLI的一部分,因此无需安装其他软件

    另一方面,
    Docker Context
    不能用于创建或配置新机器-需要手动创建或使用其他机制或工具(如Vagrant或云提供商提供的某种模板)


    因此,如果您真的需要一个工具,它可以让您轻松地创建、配置和删除支持docker的机器,那么请使用
    docker machine
    。但是,如果您只想在一个地方列出所有启用Docker的机器,并方便地设置本地Docker CLI应该与之对话的机器,
    Docker上下文是一个更安全的选择。

    您想做什么来满足需要?您通常可以在没有
    Docker machine
    的情况下很好地使用Docker。它用于测试目的,并了解
    Docker machine
    的工作原理。我在production env中有一些远程Docker引擎分散在不同的服务器上,在使用
    Docker machine
    远程管理它们之前,我想在本地主机上建立一个测试实验室。最重要的是。。。我很好奇如何完成这项任务。看起来这是不可能的。谢谢你的回复。
    docker context
    docker machine
    之间有什么区别?
    docker-machine create --driver generic --generic-ip-address 127.0.0.1 --generic-ssh-user <"ssh_username"> <node_name>
    Running pre-create checks...
    Creating machine...
    (localhost) No SSH key specified. Assuming an existing key at the default location.
    Waiting for machine to be running, this may take a few minutes...
    Detecting operating system of created instance...
    Waiting for SSH to be available...
    Password:
    Detecting the provisioner...
    Password:
    Error creating machine: Error detecting OS: Error getting SSH command: ssh command error:
    command : cat /etc/os-release
    err     : exit status 1
    output  : cat: /etc/os-release: No such file or directory
    
    docker-machine ls
    NAME        ACTIVE   DRIVER    STATE     URL                    SWARM   DOCKER    ERRORS
    localhost   -        generic   Running   tcp://127.0.0.1:2376           Unknown   Unable to query docker version: Cannot connect to the docker engine endpoint