Après avoir redémarré mes fenêtres, je ne peux pas me connecter à la machine Docker exécutée dans Oracle Virtual Box. Lorsque je démarre Docker QuickStart Terminal, tout va bien, ça se passe bien et cela me donne ce message:
docker is configured to use the default machine with IP 192.168.99.100
For help getting started, check out the docs at https://docs.docker.com
mais quand je fais:
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
default - virtualbox Timeout
et:
λ docker images
An error occurred trying to connect: Get http://localhost:2375/v1.21/images/json: dial tcp 127.0.0.1:2375: ConnectEx tcp: No connection could be made because the target machine actively refused it.
aussi quand j'essaye de réinitialiser mon env., j'obtiens:
λ docker-machine env default
Error checking TLS connection: Error checking and/or regenerating the certs: There was an error validating certificates for Host "192.168.99.100:2376": dial tcp 192.168.99.100:2376: i/o timeout
You can attempt to regenerate them using 'docker-machine regenerate-certs [name]'.
Be advised that this will trigger a Docker daemon restart which will stop running containers.
BTW, Regenerating certs n'aide pas non plus. Une idée?
Merci.
Veuillez essayer de régénérer les certificats manuellement en:
docker-machine --debug regenerate-certs -f default
et recherchez d'éventuelles erreurs à corriger, puis réessayez:
docker-machine --debug env default
S'il échoue sur ssh, copiez et collez cette commande dans le terminal pour voir quel est le problème en ajoutant -vv
.
Si vous avez:
debug1: connexion à l'adresse 127.0.0.1 port 64368: connexion refusée
alors votre machine ne fonctionne pas (vérifiez par docker-machine ls
), essayez donc:
docker-machine start
Essayez ensuite d'y accéder via:
docker-machine -D ssh default
Après avoir fait quelques recherches, j'ai découvert que la solution de contournement suivante peut résoudre le problème pour l'instant:
Centre de réseau et de partage ouvert
Cliquez sur Modifier le paramètre de l'adaptateur
Vérifiez si vous avez des adaptateurs activés tels que VPN ou VM adaptateurs réseau Ware.
Essayez de les désactiver et essayez de vous connecter à votre conteneur une fois de plus
Si cela n'a pas fonctionné alors que d'autres adaptateurs sont désactivés, redémarrez votre PC - dans mon cas, cela a fonctionné pour moi.
Cela a fonctionné pour moi:
rmdir.exe --ignore-fail-on-non-empty ~/.docker/
docker-machine start
docker-machine env
eval $("C:\Program Files\Docker Toolbox\docker-machine.exe" env default)
(ajouté également à la fin de mon .bash_profile
.docker run hello-world
<- maintenant en train de travaillerInspiré d'un poste ici .
Voici ce qui a fonctionné pour moi. Les premières étapes sont similaires à celles proposées par Hazhir, puis régénérées par les certificats.
docker-machine start
.docker-machine env
. Si vous êtes comme moi, vous obtiendrez l'erreur suivante:Erreur lors de la vérification de la connexion TLS: erreur lors de la vérification et/ou de la régénération des certificats: une erreur s'est produite lors de la validation des certificats pour l'hôte "192.168.99.100:2376": x509: le certificat est valide pour 192.168.99.101, pas 192.168.99.100
Ce qui est bon. Maintenant, tout ce que nous devons faire est de courir
docker-machine regenerate-certs -f default
Ensuite, testez-le à nouveau avec docker-machine env
. Si vous obtenez:
SET DOCKER_TLS_VERIFY=1
SET DOCKER_Host=tcp://192.168.99.100:2376
SET DOCKER_CERT_PATH=C:\Users\Jay\.docker\machine\machines\default
SET DOCKER_MACHINE_NAME=default
REM Run this command to configure your Shell:
REM FOR /f "tokens=*" %i IN ('docker-machine env') DO %i
Ensuite, vous êtes prêt. Dans mon cas, je devais démarrer ma machine virtuelle en exécutant Docker Quickstart Terminal.
J'ai aussi ce problème. Exécutez docker-machine regenerate-certs <vm-name>
ne peut pas résoudre le problème. Je recherche dans Google les informations d'erreur et trouve la solution ci-dessous.
Sudo ifconfig vboxnet0 up
dans le terminal.docker-machine ls
.STATE
et URL
sont ok.Mais redémarrez le système, ce problème persiste.
problèmes GitHub le lien que j'ai trouvé est ici.
Il semble qu'il y ait bug dans VirtualBox 5.1.24.
Dans mon cas, c'est mon FortiClient
qui a causé le problème. Après l'avoir désactivé docker-machine env default
a encore bien fonctionné. Je vous suggère de vérifier s'il existe un programme antivirus en cours d'exécution sur votre système.
Essayez de cette façon/solution:
J'espère que cela aide aussi à voir ma réponse ici: https://github.com/docker/machine/issues/2808
La façon dont je m'assure de pouvoir me connecter à mes machines à docker est en en leur attribuant une IP fixe (et en régénérant les certificats une seule fois) (aucun redémarrage nécessaire)
Après ça, docker-machine ls
Fonctionne toujours.
Mon script actuel:
(remplacer %PRGS%\dm\latest
par le chemin où docker-machine.exe
est sur votre machine)
(assurez-vous que PATH
inclut le dernier/chemin/vers/git/usr/bin , pour que des commandes comme ssh soient disponibles)
> more dmvbf.bat
@echo off
setlocal enabledelayedexpansion
set machine=%1
if "%machine%" == "" (
echo dmvbf expects a machine name
exit /b 1
)
set ipx=%2
if "%ipx%" == "" (
echo dmvbf x missing ^(for 192.168.x.y^)
exit /b 2
)
set ipy=%3
if "%ipy%" == "" (
echo dmvbf y missing ^(for 192.168.x.y^)
exit /b 3
)
%PRGS%\dm\latest\docker-machine.exe ssh %machine% "Sudo sh -c 'echo \"kill \$(more /var/run/udhcpc.eth1.pid)\" | Sudo tee /var/lib/boot2docker/bootsync.sh >/dev/null'"
%PRGS%\dm\latest\docker-machine ssh %machine% "Sudo sh -c 'echo \"ifconfig eth1 192.168.%ipx%.%ipy% netmask 255.255.255.0 broadcast 192.168.%ipx%.255 up\" | Sudo tee -a /var/lib/boot2docker/bootsync.sh >/dev/null'"
%PRGS%\dm\latest\docker-machine ssh %machine% "Sudo chmod 755 /var/lib/boot2docker/bootsync.sh"
%PRGS%\dm\latest\docker-machine ssh %machine% "Sudo cat /var/run/udhcpc.eth1.pid | xargs Sudo kill"
%PRGS%\dm\latest\docker-machine ssh %machine% "Sudo ifconfig eth1 192.168.%ipx%.%ipy% netmask 255.255.255.0 broadcast 192.168.%ipx%.255 up"
Par exemple:
dmvbf default 99 100
docker-machine regenerate-certs -f default
Cela affectera 192.168.99.100
à la machine docker 'default
', et régénérez les certificats une fois.
Puis à chaque fois docker-machine ls
est appelé, il affichera la même IP pour 'default
'.
Il suffit de démarrer la machine docker puis de régénérer les certificats
docker-machine start <machine-name>
docker-machine regenerate-certs <machine-name>
Cela fonctionne comme un charme pour moi.
pour moi, courir
docker-machine --debug regenerate-certs -f name_of_your_vm
a très bien fonctionné.
docker-machine version 0.16.1
virtualBox 6.0
docker a également été configuré pour utiliser la machine par défaut avec IP 192.168.99.100