Docker机器如何标记为活动?

Docker机器如何标记为活动?,docker,docker-machine,Docker,Docker 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:2

我正在通过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

)中不断指定机器名称?我认为只需运行以下命令即可:

$ eval $(docker-machine env default)
(其中,
default
是机器的名称)

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


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

使用下面的命令将Docker for Windows容器与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

Dock

很简单,答案就在DOCKER网站上的“如果DOCKER_主机环境变量指向机器,则认为机器处于活动状态”这句话中:

那么,让我们先说:

$ 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-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终端上试用):

现在,如果您检查:

$ echo $DOCKER_HOST
tcp://203.0.113.81:2376  ====> it will point to staging
$ 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
活动容器已移动到“dev”!!从现在起,所有命令,如“docker container ls”等,都应该反映新活动的容器

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

在windows>@for/f“tokens=*%i in('Docker-machine env default')DO@%i