web-dev-qa-db-fra.com

Comment une machine Docker est-elle marquée comme active?

Je travaille sur le Docker Machine User Guide sur https://docs.docker.com/v1.5/machine/ .

Ça dit:

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.

Quand je lance ceci, je ne vois pas le * à côté de n'importe quelle machine. Que dois-je faire pour que la machine soit marquée comme active? Y a-t-il des avantages à cela?

Par exemple, j'exécute la machine Docker sur Windows 10, en la rendant active, cela signifie-t-il que je n'ai pas à continuer de spécifier le nom de la machine dans mes commandes telles que docker-machine env dev

21
Jay Killeen

Je pense que l'exécution de la commande suivante devrait fonctionner:

$ eval $(docker-machine env default)

(Où default est le nom de la machine).

La raison du * est de vous dire à quelle machine vous êtes actuellement connecté, par ex. si vous exécutez docker ps à quel moteur Docker va-t-il parler?

Dans la version actuelle de la machine Docker, je pense que vous devez toujours spécifier le nom.

39
Adrian Mouat

Utilisez la commande ci-dessous pour Docker pour Windows Container avec Powershell pour rendre la machine active:

#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

Quai

5
Sathishbabu

Son 'assez simple et la réponse réside dans la déclaration "une machine est considérée comme active si la variable d'environnement DOCKER_Host pointe vers elle" du site Web de docker: https://docs.docker.com/machine/reference/active/

Donc, disons d'abord:

$ 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

Si vous cochez:

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

Tout ce que vous avez à faire maintenant est (essayé sur le terminal Docker):

$ DOCKER_Host=tcp://192.168.99.103:2376

Et maintenant, si vous cochez:

$ 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

Le conteneur actif est passé à "dev" !! À partir de maintenant, toutes vos commandes comme 'docker container ls' etc. devraient refléter votre nouveau conteneur actif.

Mais veuillez noter que cet arrangement ne fonctionnera que pour le terminal Docker où vous avez changé le conteneur par défaut, c'est-à-dire que si vous fermez et rouvrez un nouveau terminal ou ouvrez un autre terminal Docker, le conteneur par défaut d'origine (mise en scène dans cet exemple) sera actif.

2
Anshuman Manral