Machine: La création de la machine échoue avec le dernier Docker

Créé le 29 juin 2017  ·  46Commentaires  ·  Source: docker/machine

Bonjour

docker-machine version 0.12.0, build 45c69ad

docker-machine create échoue maintenant:

docker-machine -D create \
    --driver google \
    --google-project project \
    --google-zone us-east1-d \
    --google-machine-type n1-standard-1 \
    --google-disk-size 20 \
    --google-preemptible \
    build-vm2

La machine est créée et Docker est installé, mais il ne démarre pas. Le problème semble être lié à une nouvelle version de Docker installée par une nouvelle version du script d'installation sur https://get.docker.com. Mes installations sont passées de 17.05.0-ce à 17.06.0-ce, et avec ce changement, Docker s'installe mais ne démarre pas.

Jun 29 00:50:08 build-vm2 docker[5705]: `docker daemon` is not supported on Linux. Please run `dockerd` directly

ou

Jun 29 00:56:12 build-vm2 dockerd[6407]: Error starting daemon: error initializing graphdriver: driver not supported

Sauf si je change:

/usr/bin/docker daemon -H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock --storage-driver aufs --tlsverify --tlscacert /etc/docker/ca.pem --tlscert /etc/docker/server.pem --tlskey /etc/docker/server-key.pem --label provider=google

à

/usr/bin/dockerd -H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock --tlsverify --tlscacert /etc/docker/ca.pem --tlscert /etc/docker/server.pem --tlskey /etc/docker/server-key.pem --label provider=google

en /etc/systemd/system/docker.service.d/10-machine.conf .

areprovision kinbug

Commentaire le plus utile

J'utilise ceci comme solution de contournement:

docker-machine créer \
--pilote amazonec2 \
--engine-install-url = https://web.archive.org/web/20170623081500/https : //get.docker.com

ou
--engine-install-url = https://releases.rancher.com/install-docker/17.05.sh

Tous les 46 commentaires

Même problème ici

docker-machine create 
    --driver=digitalocean
    --digitalocean-access-token=XXX 
    --digitalocean-size=2gb
    machinename

Hier, la même commande fonctionnait bien avec la version 17.05.0-ce de docker
Aujourd'hui, le docker de ma nouvelle machine ne démarre pas (17.06.0-ce)
J'ai essayé plusieurs fois.

Je peux également le confirmer:

dm create -d digitalocean \
--digitalocean-access-token XXX \
--digitalocean-size 4gb machine

J'utilise ceci comme solution de contournement:

docker-machine créer \
--pilote amazonec2 \
--engine-install-url = https://web.archive.org/web/20170623081500/https : //get.docker.com

ou
--engine-install-url = https://releases.rancher.com/install-docker/17.05.sh

J'ai le même problème.

version docker: version Docker 17.06.0-ce
version docker-machine: 0.12.0, build 45c69ad

docker-machine create --driver amazonec2 --amazonec2-region eu-west-1 --amazonec2-instance-type t2.small --amazonec2-access-key XXX --amazonec2-secret-key XXX test-create-machine

29 juin 12:26:56 ip-172-31-10-149 systemd [1]: Démarrage de Docker Application Container Engine ...
29 juin 12:26:56 ip-172-31-10-149 docker [5234]: docker daemon n'est pas pris en charge sous Linux. Veuillez exécuter dockerd directement

docker daemon n'est pas pris en charge sous Linux. Veuillez exécuter dockerd directement

J'ai pu le faire fonctionner avec ce PR
https://github.com/docker/machine/pull/4128

Compilez simplement docker-machine avec ce correctif et tout fonctionne à nouveau

@gnomus super, c'est intéressant! Je me demande cependant pourquoi cela fonctionnait pour 17.05.0-ce.

@therealppa haahaha génial! Je me demandais comment je pourrais obtenir l'ancienne version de ce script, ou si le script live prend des paramètres pour installer une version plus ancienne. web.archive.org ne m'est certainement pas venu à l'esprit.

@dminkovsky Je ne pense pas que cela fonctionnera éternellement, si vous regardez dans le script, il ne spécifie la version nulle part ... Pourtant, pour le moment, cela fonctionne.

@therealppa @dminkovsky Une

$sh_c 'apt-get install -y -q docker-ce'

à

$sh_c "apt-get install -y -q docker-ce=17.05.0~ce-0~$lsb_dist-$dist_version"

Espérons que la version fixe de docker-machine sera bientôt disponible.

pareil pour moi
Nous le faisons fonctionner en utilisant "dockerd" au lieu de "docker daemon" dans le fichier /etc/systemd/system/docker.service.d/10-machine.conf

@ fabio-barile et le --storage-driver aufs arg? Le mien ne commencerait pas tant que je ne m'en débarrassais pas.

@dminkovsky J'ai eu le même problème sur une ci autoscaling avec gitlab, j'ai eu le problème aufs + le problème dockerd, j'ai dû le résoudre en spécifiant la superposition dans le pilote de stockage.

Au-delà du problème du pilote de stockage, je vois également des erreurs de vérification pour les certificats créés par gitlab-runner (9.3.0). @ JustEra avez-vous rencontré le même problème ou suis-je le seul?

http: TLS handshake error from ...:
 tls:
  failed to verify client's certificate: x509:
   certificate signed by unknown authority (possibly because of "crypto/rsa: verification error" while trying to verify candidate authority certificate "unknown")
ERROR: Error creating machine:
 Error checking the host:
  Error checking and/or regenerating the certs:
   There was an error validating certificates for host "...":
    remote error: tls: bad certificate  driver=amazonec2 name=...

Ce problème de pilote de stockage a été résolu pour moi (vient de supprimer ce paramètre; pour systemd UNIQUEMENT). Postulez en haut de https://github.com/docker/machine/pull/4128 et reconstruisez:

diff --git a/libmachine/provision/systemd.go b/libmachine/provision/systemd.go
index 90d02603..05d63bb5 100644
--- a/libmachine/provision/systemd.go
+++ b/libmachine/provision/systemd.go
@@ -53,7 +53,7 @@ func (p *SystemdProvisioner) GenerateDockerOptions(dockerPort int) (*DockerOptio

        engineConfigTmpl := `[Service]
 ExecStart=
-ExecStart=/usr/bin/` + arg + ` -H tcp://0.0.0.0:{{.DockerPort}} -H unix:///var/run/docker.sock --storage-driver {{.EngineOptions.StorageDriver}} --tlsverify --tlscacert {{.AuthOptions.CaCertRemotePath}} --tlscert {{.AuthOptions.ServerCertRemotePath}} --tlskey {{.AuthOptions.ServerKeyRemotePath}} {{ range .EngineOptions.Labels }}--label {{.}} {{ end }}{{ range .EngineOptions.InsecureRegistry }}--insecure-registry {{.}} {{ end }}{{ range .EngineOptions.RegistryMirror }}--registry-mirror {{.}} {{ end }}{{ range .EngineOptions.ArbitraryFlags }}--{{.}} {{ end }}
+ExecStart=/usr/bin/` + arg + ` -H tcp://0.0.0.0:{{.DockerPort}} -H unix:///var/run/docker.sock --tlsverify --tlscacert {{.AuthOptions.CaCertRemotePath}} --tlscert {{.AuthOptions.ServerCertRemotePath}} --tlskey {{.AuthOptions.ServerKeyRemotePath}} {{ range .EngineOptions.Labels }}--label {{.}} {{ end }}{{ range .EngineOptions.InsecureRegistry }}--insecure-registry {{.}} {{ end }}{{ range .EngineOptions.RegistryMirror }}--registry-mirror {{.}} {{ end }}{{ range .EngineOptions.ArbitraryFlags }}--{{.}} {{ end }}

Pour tous ceux qui souhaitent une ancienne version spécifique, nous (Rancher) maintenons des scripts get.docker.com légèrement modifiés pour installer chacun d'eux:

http://rancher.com/docs/rancher/v1.6/en/hosts/#supported -docker-versions

@ fabio-barile ci-dessus est tout à fait correct. Comment «tester» permet-il d'émettre de telles choses, je ne peux pas imaginer.

Plus d'informations ici: https://github.com/docker/for-linux/issues/11#issuecomment -312143765

@ vincent99 ... toujours comme le son de vous les gars, et merci.

+1
Je reviens tous les jours pour une nouvelle version de docker-machine ... Ce bug me tue :-)

Pour l'instant, j'ajoute /etc/systemd/system/docker.service.d/20-machine.conf qui remplace 10-machine.conf avec la ligne de commande correcte. De cette façon, une autre commande docker-machine qui la casserait normalement, ne le fait pas. Bien sûr, plus il faut de temps pour que cela soit corrigé dans la version, plus j'ai de travail pour tout remettre en place!

Merci pour la grande ventilation des détails sur le problème - Nous l'examinons pour essayer de comprendre ce qui n'a pas fonctionné.

en rapport avec https://github.com/docker/for-linux/issues/11#issuecomment -312143765

Donc, cela n'est pas lié au script d'installation à get.docker.com mais plutôt lié au fait que la comparaison de versions ne fonctionne pas correctement et que 17.06.0-ce est le premier à désapprouver officiellement docker daemon c'est pourquoi nous sommes voir les échecs.

Ce PR (docker / machine # 4128) semble remédier à ce problème et j'aurai un PR en fin d'après-midi qui ajoute des tests pour les autres fonctions de comparaison afin que nous ne rencontrions plus quelque chose comme ça.

@seemethere Sonne bien, merci. Aimez entendre parler du test.

Le différend sur l'un des PR m'a paru un peu étrange, mais je pense que vous vous en êtes occupé.

La version 0.12.1 corrige ce bogue. Merci à tous pour votre patience et votre aide.

@ shin- merci pour la solution rapide! J'ai hâte de l'utiliser.

@ shin- Ce patch corrige la partie docker daemon -> dockerd , mais Docker ne démarre toujours pas sur la machine en raison de

dockerd[6407]: Error starting daemon: error initializing graphdriver: driver not supported

@ shin- J'ai pu contourner le problème du pilote de stockage en ajoutant --engine-storage-driver=overlay (https://github.com/docker/machine/issues/3895#issuecomment-270934728). Voici donc toute mon invocation docker-machine .

docker-machine -D create \
    --driver google \
    --google-project $project \
    --google-zone $zone \
    --google-machine-type $type \
    --google-disk-size $size \
    --google-preemptible \
    --engine-storage-driver=overlay \
    $name

Sans --engine-storage-driver=overlay il échoue toujours avec

dockerd[6407]: Error starting daemon: error initializing graphdriver: driver not supported

comme avant et comme # 3895

Avez-vous vu le journal expliquant pourquoi il s'est écrasé?

Le ven 7 juillet 2017 à 9 h 39, Seweryn Zeman [email protected]
a écrit:

@ shin- https://github.com/shin- malheureusement 0.12.1 n'a pas corrigé ce problème
pour moi.

$ docker -v
Docker version 17.06.0-ce, build 02c1d87
$ docker-machine -v
docker-machine version 0.12.1, build c8b17e8

Je crée une machine amazonec2 avec --amazonec2-region = eu-central-1
qui crée un ami-fe408091 pour moi.

La sortie de docker-machine create est:

Exécution des vérifications de pré-création ...
Création de la machine ...
(test-dm) Lancement de l'instance ...
En attendant que la machine fonctionne, cela peut prendre quelques minutes ...
Détection du système d'exploitation de l'instance créée ...
En attente de la disponibilité de SSH ...
Détection de l'approvisionneur ...
Provisionnement avec ubuntu (systemd) ...
Installation de Docker ...
Copie des certificats dans le répertoire de la machine locale ...
Copie de certificats sur la machine distante ...
Définition de la configuration de Docker sur le démon distant ...
Erreur lors de la création de la machine: erreur lors de l'exécution de l'approvisionnement: erreur de commande ssh:
commande: sudo systemctl -f start docker
err: état de sortie 1
sortie: le travail pour docker.service a échoué car le processus de contrôle s'est terminé avec un code d'erreur. Voir "systemctl status docker.service" et "journalctl -xe" pour plus de détails.

La sortie de la machine lancée est:

$ systemctl status docker.service
● docker.service - Docker Application Container Engine
Chargé: chargé (/lib/systemd/system/docker.service; activé; préréglage du fournisseur: activé)
Drop-In: /etc/systemd/system/docker.service.d
└─10-machine.conf
Actif: inactif (mort) (résultat: code de sortie) depuis ven 2017-07-07 13:34:47 UTC; Il y a 36s
Documents: https://docs.docker.com
Processus: 5522 ExecStart = / usr / bin / dockerd -H tcp: //0.0.0.0 : 2376 -H unix: ///var/run/docker.sock --storage-driver aufs --tlsverify --tlscacer
PID principal: 5522 (code = sortie, état = 1 / FAILURE)

07 juillet 13:34:46 test-dm systemd [1]: docker.service: L'unité est entrée en état d'échec.
07 juillet 13:34:46 test-dm systemd [1]: docker.service: Échec avec le résultat 'exit-code'.
07 juillet 13:34:47 test-dm systemd [1]: docker.service: Délai d'attente du service dépassé, planification du redémarrage
07 juillet 13:34:47 test-dm systemd [1]: Arrêt du moteur de conteneur d'application Docker.
07 juillet 13:34:47 test-dm systemd [1]: docker.service: Demande de démarrage répétée trop rapidement.
07 juillet 13:34:47 test-dm systemd [1]: échec du démarrage de Docker Application Container Engine.

-
Vous recevez cela parce que vous avez été mentionné.
Répondez directement à cet e-mail, affichez-le sur GitHub
https://github.com/docker/machine/issues/4156#issuecomment-313683311 ,
ou couper le fil
https://github.com/notifications/unsubscribe-auth/AANWZXHODzL3Lumb5NqlmXwnSi3VZBBkks5sLjUlgaJpZM4OIt7R
.

@dminkovsky Merci pour la solution de contournement. J'ai décidé d'utiliser overlay2 car c'est une dernière version du pilote à la place.

Savez-vous s'il existe également une solution de contournement pour docker-machine rm {instance-name} ? J'obtiens une erreur liée à EOF et cela laisse des restes de paires de clés sur le cloud AWS m'empêchant de recréer l'instance.

Désolé, j'ai supprimé mon message après avoir débogué dur et remarqué que c'était en fait à cause de ce que @dminkovsky a écrit:

Sans --engine-storage-driver=overlay il échoue toujours avec
dockerd[6407]: Error starting daemon: error initializing graphdriver: driver not supported
comme avant et comme # 3895

Avons-nous un problème pour ce cas particulier d'utilisation du stockage du moteur AUFS?

@cadavre

Avons-nous un problème pour ce cas particulier d'utilisation du stockage du moteur AUFS?

J'ai vu https://github.com/docker/machine/issues/3895 , qui est ouvert et que vous avez également référencé.

Chose intéressante, je ne vois plus ce bug. Je reçois --storage-driver overlay

@drujensen

J'ai décidé d'utiliser overlay2 car c'est une dernière version du pilote à la place.

Oh cool, merci, je ne savais pas ça.

Savez-vous s'il existe également une solution de contournement pour docker-machine rm {instance-name}?

Pas sûr, je n'ai pas eu ce bug. J'utilise docker-machine rm -f lorsque la machine a été arrêtée et ne répond pas. Avec -f , docker-machine rm supprime la VM et les disques associés même si elle ne peut pas atteindre la boîte.

@dminkovsky Pouvez-vous créer un nouveau problème pour cela? Cela n'a aucun rapport avec le problème dockerd / docker daemon , nous devrions donc le traiter séparément. Et veuillez également indiquer quel système d'exploitation vous approvisionnez :)

@ shin- je vais bien. docker-machine fonctionne à 100% en ce moment pour moi. faites-vous référence à la chose overlay2?

Mon autre problème concernant la suppression de machines a été abordé dans le pr # 4187. THX.

@dminkovsky Désolé - oui, celui que vous mentionnez ici

@shin - Après avoir rencontré le problème sur https://github.com/docker/machine/issues/4168 , j'ai tenté de recréer mon serveur de test et j'ai trouvé une série de problèmes avec docker-machine create qui ont été signalés dans plusieurs tickets récents:

Sont-ils tous liés? Commencer à les suivre ici? Je peux confirmer que ce problème se produit encore aujourd'hui.

@ shin- docker-machine v0.12.1 présente toujours le même problème

J'obtiens toujours le même problème avec la version 0.12.1.

screen shot 2017-07-27 at 11 32 00 am

Veuillez mettre à jour vers la dernière version trouvée sur github:
https://github.com/docker/machine/releases/tag/v0.12.2

@eamontaaffe @ajwah @costa

Merci @dminkovsky J'obtenais cette erreur sur 0.12.2 aujourd'hui aussi !!! Il semble que le fichier 10-machine.conf ne soit pas remplacé lors de la mise à jour

De rien!

Je spécifie "overlay" dans l'option de ligne de commande pour le moteur de stockage et depuis
le démarrage de mes machines.

ср, 2 авг. 2017 г. à 12h05, Denis [email protected] :

Merci @dminkovsky https://github.com/dminkovsky je recevais ceci
erreur sur 0.12.2 aujourd'hui aussi !!! Il semble que le fichier 10-machine.conf ne fonctionne pas
être remplacé lors de la mise à jour

-
Vous recevez cela parce que vous avez été mentionné.
Répondez directement à cet e-mail, affichez-le sur GitHub
https://github.com/docker/machine/issues/4156#issuecomment-319719085 ,
ou couper le fil
https://github.com/notifications/unsubscribe-auth/AANWZSYqy1uGhWeXozx35OnFhPRSb144ks5sUJ5YgaJpZM4OIt7R
.

Si vous utilisez des systèmes avec un noyau> 4.4, je suggère d'utiliser overlay2 .

Je n'ai pas pu faire en sorte que la machine utilise overlay2, et le cas d'utilisation pour cela
heureusement était juste la construction / CD

ср, 2 авг. 2017 г. à 12 h 36, Seweryn Zeman [email protected] :

Si vous utilisez des systèmes avec un noyau> 4.4, je suggère d'utiliser overlay2.

-
Vous recevez cela parce que vous avez été mentionné.
Répondez directement à cet e-mail, affichez-le sur GitHub
https://github.com/docker/machine/issues/4156#issuecomment-319727847 ,
ou couper le fil
https://github.com/notifications/unsubscribe-auth/AANWZXLGHjLvfOOAgmBWV0zOEBDZBdSVks5sUKWBgaJpZM4OIt7R
.

Obtenir également cette erreur sur 0.12.2 :-(

cela encore ouvert!

Je vois toujours ce problème avec docker-machine 0.12.2 . J'ai avancé en désinstallant docker sur la machine provisionnée ( sudo apt purge docker-ce && sudo apt autoremove ) et j'ai utilisé le script d'installation Rancher correct pour ma version comme indiqué ci-dessus.

Pour une raison quelconque, cela ne parvient toujours pas à démarrer le docker, mais le redémarrage de la machine le résout.

Peut confirmer, toujours la même erreur

@jhartma, je suppose, est une mise à niveau nécessaire vers la dernière version (image Linux) et fonctionne

@kassanmoor semble que mon AMI ne le

Cette page vous a été utile?
0 / 5 - 0 notes