【问题标题】:How is a Docker Machine marked as active?如何将 Docker 机器标记为活动?
【发布时间】:2015-10-19 10:09:18
【问题描述】:

我正在通过https://docs.docker.com/v1.5/machine/ 阅读 Docker 机器用户指南。

上面写着:

You can see the machine you have created by running the docker-machine ls command again:

  $ docker-machine ls
  NAME      ACTIVE   DRIVER       STATE     URL
  dev       *        virtualbox   Running   tcp://192.168.99.100:2376

The * next to dev indicates that it is the active host.

当我运行它时,我看不到任何机器旁边的 *。我需要做什么才能将机器标记为活动?这样做有什么好处吗?

例如,我在 Windows 10 上运行 Docker 机器,通过使其处于活动状态是否意味着我不必在我的命令中指定机器名称,例如 docker-machine env dev

【问题讨论】:

    标签: docker docker-machine


    【解决方案1】:

    我认为只需运行以下命令即可:

    $ eval $(docker-machine env default)
    

    (其中default 是机器的名称)。

    * 的原因是告诉您当前连接到哪台机器,例如。如果你运行docker ps,它将与哪个 Docker 引擎通信?

    在当前版本的 Docker 机器中,我相信你必须始终指定名称。

    【讨论】:

    • 在 windows > @FOR /f "tokens=*" %i IN ('docker-machine env default') DO @%i
    【解决方案2】:

    对 Docker for Windows Container with Powershell 使用以下命令使机器处于活动状态:

    #Powershell command
    PS: docker-machine env default
    #output might me like this
     $Env:DOCKER_TLS_VERIFY = "1"
     $Env:DOCKER_HOST = "tcp://172.16.104.171:2376"
     $Env:DOCKER_CERT_PATH = "C:\Users\username\.docker\machine\machines\default"
     $Env:DOCKER_MACHINE_NAME = "default"
    #DOCKER_HOST environmental variable should has same value as default machine
    PS:$Env:DOCKER_HOST = "tcp://172.16.104.171:2376" # should be same as default machine Env:DOCKER_HOST
    #Now list docker machines, default will be active.
    PS: docker-machine ls
    #default is not active and it look like this.
    NAME       ACTIVE   DRIVER   STATE     URL                         SWARM   DOCKER    ERRORS
    default    *        hyperv   Running   tcp://172.16.104.171:2376           v1.12.3
    manager1   -        hyperv   Running   tcp://172.16.104.168:2376           v1.12.3
    

    码头

    【讨论】:

      【解决方案3】:

      它非常简单,答案在于 docker 网站上的语句“如果 DOCKER_HOST 环境变量指向它,则认为机器处于活动状态”:https://docs.docker.com/machine/reference/active/

      所以,让我们先说:

      $ docker-machine ls
      
      NAME      ACTIVE   DRIVER         STATE     URL
      dev       -        virtualbox     Running   tcp://192.168.99.103:2376
      staging   *        digitalocean   Running   tcp://203.0.113.81:2376
      

      如果你检查:

      $ echo $DOCKER_HOST
      tcp://203.0.113.81:2376  ====> it will point to staging
      

      您现在要做的就是(在 Docker 终端上尝试):

      $ DOCKER_HOST=tcp://192.168.99.103:2376
      

      现在如果你检查:

      $ docker-machine ls
      
      NAME      ACTIVE   DRIVER         STATE     URL
      dev       *        virtualbox     Running   tcp://192.168.99.103:2376
      staging   -        digitalocean   Running   tcp://203.0.113.81:2376
      

      活动容器已移至“开发”!从现在开始,您的所有命令(例如“docker container ls”等)都应该反映您新激活的容器。

      但请注意,这种安排仅适用于您更改了默认容器的 Docker 终端,即,如果您关闭并重新打开一个新终端或打开另一个 Docker 终端,则原始默认容器(本示例中为暂存)将处于活动状态.

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-05-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多