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
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.
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
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.