Machine: Connectez-vous au moteur Windows Docker

Créé le 22 janv. 2016  ·  60Commentaires  ·  Source: docker/machine

Quelqu'un a-t-il commencé à ajouter ou à penser à un pilote de machine docker et à un approvisionneur pour les moteurs Windows Docker?
Donc, n'importe qui peut utiliser docker-machine pour sécuriser et se connecter à un Windows Server 2016 TP4 aussi facilement que nous sommes utilisés pour un moteur Docker Linux?

Quelque chose comme:

docker-machine create -d generic --generic-winrm-user "administrator" ... dev
docker-machine create -d azure --azure-username "administrator" --azure-winrm-port 5985 ... dev

Utiliser WinRM (HTTP / HTTPS) au lieu de SSH pour accéder au serveur Windows distant et y placer les certificats TLS et reconfigurer le service Windows Docker et d'autres choses.
Je sais que le packer a des communicateurs pour SSH et WinRM intégrés à Go pour l'approvisionnement.
Relier simplement les points ...

ping @ahmetalpbalkan : sourire:

arewindows kinenhancement

Commentaire le plus utile

J'ai suivi les instructions de @ jen20 pour créer une AMI Windows avec SSH. Il fonctionne avec Docker Machine jusqu'au moment de l'approvisionnement, où il échoue car il n'y a pas /etc/os-release fichier

Tous les 60 commentaires

En raison de la façon dont le modèle d'approvisionnement fonctionne actuellement, il n'est peut-être pas trop fou d'implémenter une telle fonctionnalité, même si cela nécessiterait de repenser ou de masquer certaines hypothèses assez fondamentales (par exemple la présence de SSH).

J'ai le sentiment que la manière dont il devra être implémenté est d'avoir des indicateurs qui indiquent spécifiquement qu'il s'agit d'une machine Windows. par exemple --generic-winrm-userpass .

Je ne sais pas grand-chose sur les conteneurs Windows Server, mais comme Nathan l'a dit, la plupart du travail consisterait à obtenir le protocole SSH sur Windows soit en attendant que Microsoft le fasse (cela se passe) ou en fournissant un polyfill en utilisant WinRM peut-être (je ne savoir comment cela fonctionne du tout).

Je me souviens que certaines discussions à ce sujet se déroulaient également en interne. cc: @jstarks car il fait partie de l'équipe des conteneurs Windows.

Si vous pensez que vous pouvez prototyper quelque chose, je vous dirais d'y aller.

Salut @StefanScherer , je suis PM dans l'équipe Hyper-V et je cherche en fait comment nous pourrions rendre cela possible. L' une des choses que nous pensons est que nous pourrions peut - être utiliser à propos de ce que le système d' exploitation que Docker machine pourrait tirer. Si nous utilisons Nano, cela resterait comme un petit téléchargement. Le dépôt pour le projet Open SSH dans Windows est ici .

Toutes les idées sont appréciées et si vous voulez prototyper quelque chose, faites-le moi savoir. Je continuerai à publier ici si j'en découvre plus sur la façon de faire fonctionner cela.

cc: @dgageot

@ enderb-ms Oh, une image Nano, ce serait génial aussi. Et OpenSSH est également une option. Entre-temps, d'autres projets comme Packer et Vagrant ont amélioré la prise en charge de Windows pour utiliser WinRM et se débarrasser de SSH pour avoir une communication plus native.

Ce à quoi j'ai pensé dans un premier temps, c'est de laisser docker-machine se connecter à un serveur TP4, par exemple. avec le pilote générique.

Je n'ai pas encore essayé le pilote azure, je pense à sélectionner un modèle de moteur TP4 VM + docker chez Azure et docker-machine sait alors provisionner une VM Windows au lieu d'une VM Linux. Il suffit de faire quelques étapes minimales pour connecter la machine locale sur laquelle docker-machine s'exécute avec ce Docker Engine distant.

Voici les étapes d'un pilote générique s'exécutant sur une machine virtuelle Linux sur laquelle Docker est déjà installé. J'ai ajouté quelques idées pour Windows:

  1. docker-machine se connecte à l'adresse IP distante
  2. vérifier la version du système d'exploitation s'il peut être provisionné (cat / etc / os-release -> obtenir des informations Windows à la place)
  3. mettre à jour le nom d'hôte?
  4. mettre à jour / etc / hosts
  5. installer curl (pas nécessaire pour l'installer sur les hôtes Windows)
  6. vérifiez si docker est installé. Sinon, installez-le. (probablement exécuter l'intégralité de Install-ContainerHost.ps1?)
  7. vérifier la version du docker
  8. créer le répertoire de configuration de docker (/ etc / docker ->% ProgramData% / docker)
  9. arrêter le service docker
  10. insérez ca.pem (Windows:% ProgramData% / docker / certs.d)
  11. insérez server.pem
  12. insérez server-key.pem
  13. écrire le fichier de configuration de docker (/ etc / default / docker, probablement une amélioration de% ProgramData% / docker / runDockerDaemon.cmd)
  14. démarrer le service docker
  15. netstat -an

La phase 1:

Pour le scénario Azure / local TP4 avec moteur Docker préinstallé:

Étape 1.) il doit utiliser WinRM (par exemple, jetez un œil au communicateur winrm de

Étape 2.) pourrait vérifier si tout est opérationnel et si la machine virtuelle est un TP4. Sinon, abandonnez s'il n'est pas possible de tout installer, par exemple sans redémarrage.

Il doit ensuite suivre les étapes 9.) ... 14.) pour arrêter le docker, insérer les certificats TLS et redémarrer le docker. Une fois que la machine docker a créé la connexion à une machine virtuelle Azure existante / une machine virtuelle Windows locale ou locale et a sécurisé le port docker.

Phase 2:

Plus tard, l'étape 2.) pourrait être améliorée pour permettre aux serveurs 2016 «vides» d'installer Docker avec l'étape 6.)

Phase 3:

Et puis avoir un "boot2docker.iso" avec une image Nano dedans à télécharger localement.

Juste quelques premières réflexions ;-)

@dgageot envisagez-vous de vous

@friism Il y a déjà du travail avec @ enderb-ms

@dgageot super! Y a-t-il un endroit où je peux obtenir plus de détails?

@dgageot J'ai un changement qui peut faire tourner les instances de serveur Windows sur Azure et configurer le moteur Docker. Y a-t-il un dépôt, où le travail de @ enderb-ms est disponible? Je peux soumettre le mien ici pour examen et éventuellement fusionner ou unifier avec tout ce que @ enderb-ms fait.

Description rapide de ce que j'ai fait

  1. Ajout de la prise en charge de la rotation de l’image système Windows.
  2. Utiliser l'image TP4 Windows Server 2016 sur Azure
  3. Faites-le tourner. J'utilise la bibliothèque https://github.com/Azure/azure-sdk-for-go au lieu du code vendu sur https://github.com/docker/machine/tree/master/vendor/github.com/ MSOpenTech / azure-sdk-for-go , qui semble être une version plus ancienne.
  4. Utilisez WinRM pour vous connecter à l'instance, installez docker-engine
  5. Effectuez toutes les autres étapes. J'ai remarqué que le réseautage est parfois perturbé et que le Vswitch doit être configuré.

cc @ahmetalpbalkan

@ppadala incroyable

hawt

Merci @stefanfoulis @friism. Le travail est sur https://github.com/containerx/machine , mais cela inclut également d'autres changements sans rapport avec ce PR.

Je crée une nouvelle branche, un code de nettoyage et je soumettrai bientôt une pull request.

J'ai fait la demande de tirage, tous les commentaires et critiques sont appréciés.

Il y a encore quelques éléments codés en dur qui nécessitent du travail, que je réparerai dans les prochains jours.

@ppadala vraiment sympa. Je pense que les responsables de @ enderb-ms et de docker-machine essaient actuellement de déterminer s'ils doivent utiliser WinRM ou bootstrap OpenSSH sur Windows. Je laisserai à ces gens le soin de décider des travaux à entreprendre.

En ce qui concerne le pilote azure, je crains que nous ne puissions pas modifier le pilote azure . Je viens de réécrire le pilote azure avec la pile Azure Resource Manager (c'est un énorme changement de rupture). Les détails sont à l' adresse :

@ppadala, il est également important que cela ne soit probablement pas juste un changement de pilote azure car bientôt presque tous les fournisseurs de cloud auront des images WS2016 et (si nécessaire) docker-machine devra probablement ajouter ces indicateurs spécifiques à Windows.

@ppadala vraiment sympa. Je pense que les responsables de @ enderb-ms et de docker-machine essaient actuellement de déterminer s'ils doivent utiliser WinRM ou bootstrap OpenSSH sur Windows. Je laisserai à ces gens le soin de décider des travaux à entreprendre.

J'ai également envisagé l'option SSH. Je n'ai tout simplement pas aimé le serveur Windows OpenSSH que j'ai essayé, j'ai eu du mal à me connecter au serveur depuis OS X. Cela dit, je n'ai pas essayé tous les serveurs SSH possibles, vous le savez mieux. Heureux de participer à la discussion, faites-moi savoir où se déroule la discussion.

En ce qui concerne le pilote azure, je crains que nous ne puissions pas apporter de modifications au pilote azure. Je viens de réécrire le pilote azure avec la pile Azure Resource Manager (c'est un énorme changement de rupture). Les détails sont à: # 2742 (commentaire) nous traitons actuellement les problèmes de flakiness dans Azure SDK, une fois que ceux-ci seront terminés, j'enverrai un PR pour publier le nouveau pilote azure.

Pas de soucis, le changement que j'ai fait ne concerne pas seulement le pilote azure, mais aussi le reste de docker-machine pour ajouter une option pour le système d'exploitation. Je vais essayer votre code publié sur # 2742. Le code prend-il déjà en charge la rotation des images Windows sur Azure?

@ppadala, il est également important que cela ne soit probablement pas simplement un changement de pilote azure car bientôt presque tous les fournisseurs de cloud auront des images WS2016 et (si nécessaire) docker-machine devra probablement ajouter ces indicateurs spécifiques à Windows.

Comme je l'ai mentionné ci-dessus, mon changement a à la fois le pilote azure et le reste des changements de docker-machine. Comment procéderons-nous à partir d'ici? Je peux attendre que les modifications de votre gestionnaire de ressources soient validées, puis nous pouvons comprendre l'ajout d'indicateurs spécifiques à Windows à docker-machine.

@ahmetalpbalkan J'ai vérifié le code que vous avez posté dans # 2742. Si je comprends bien, cela déplace le pilote pour utiliser les API ARM et ne prend pas en charge les images Windows. Voici ce que je propose

  1. Vérifiez et validez votre code
  2. Ajouter la prise en charge des images système Windows en rotation
  3. Ajoutez le provisionneur Windows à l'aide de WinRM (ou SSH si c'est le choix sur lequel nous sommes d'accord), des indicateurs et d'autres changements dans le noyau de la machine docker

J'ai fait 2 et 3 avec le pilote actuel et je peux apporter des modifications similaires en fonction de votre pilote basé sur ARM. Dis moi ce que tu penses.

@ppadala sonne bien. si vous essayez de rebaser votre code au-dessus de ma branche, vous pouvez être débloqué et commencer à travailler. En ce qui concerne les fonctionnalités, le nouveau pilote est prêt, mais nous sommes toujours en train de résoudre certains problèmes dans azure-sdk-for-go et ceux-ci peuvent encore prendre un certain temps (comme quelques semaines) et je vais envoyer le résultat final sous forme de pull demande.

@ppadala c'est génial! Merci d'avoir fait ça. Malheureusement, je n'ai pas pu obtenir de temps pour les développeurs, nous n'avons donc pas commencé à travailler sur nos idées. Mais cela pourrait m'aider à convaincre les gens.
L'une des raisons pour lesquelles nous voulons utiliser SSH est de pouvoir permettre aux développeurs d'autres plates-formes (Linux et OS X) de pouvoir déployer des hôtes de conteneur Windows dans des VM sur leurs machines locales ou dans le cloud. Nous avons commencé à parler d'inclure éventuellement OpenSSH dans certaines images Azure, de sorte qu'aucune étape supplémentaire ne serait nécessaire pour ajouter cette fonctionnalité. Pouvez-vous m'en dire plus sur les problèmes que vous avez rencontrés avec OpenSSH?
Tagging @dgageot qui avait également quelques réflexions sur WinRM.
Encore une fois, c'est génial, merci de faire ça @ppadala

@ppadala c'est génial! Merci d'avoir fait ça. Malheureusement, je n'ai pas pu obtenir de temps pour les développeurs, nous n'avons donc pas commencé à travailler sur nos idées. Mais cela pourrait m'aider à convaincre les gens.
L'une des raisons pour lesquelles nous voulons utiliser SSH est de pouvoir permettre aux développeurs d'autres plates-formes (Linux et OS X) de pouvoir déployer des hôtes de conteneur Windows dans des VM sur leurs machines locales ou dans le cloud. Nous avons commencé à parler d'inclure éventuellement OpenSSH dans certaines images Azure, de sorte qu'aucune étape supplémentaire ne serait nécessaire pour ajouter cette fonctionnalité. Pouvez-vous m'en dire plus sur les problèmes que vous avez rencontrés avec OpenSSH?

J'étais en train de configurer https://github.com/PowerShell/Win32-OpenSSH/wiki/Install-Win32-OpenSSH en tant que serveur SSH. Lorsque j'exécute ssh <server> <cmd> à partir de Mac, cela ne semble pas fonctionner, bien que ssh interactif sur le serveur fonctionne.

Si vous incluez le serveur SSH dans les images Azure, c'est définitivement plus propre. L'interface du pilote docker-machine semble déjà supposer que l'accès SSH est disponible.

@ppadala en fait, je viens de cette bibliothèque pour la communication winrm, non? Savez-vous si cela fonctionne sous Linux et Mac OS X?

@ppadala en fait, je viens de

Oui, la bibliothèque packer est ce que j'utilise. Cela fonctionne à la fois sur Mac OS X et Linux.

@ppadala la discussion ssh vs winrm est très intéressante:

  • SSH est bien car cela signifie que la machine utilise toujours le même protocole pour parler aux hôtes (qu'ils soient Linux ou Windows)
  • winrm est bien car il n'implique pas de brouiller un logiciel nouveau / étranger sur Windows

@ppadala, il semble que vous puissiez activer automatiquement winrm lors du provisionnement sur Azure avec EnableWinRMHttp . Détails ici: https://msdn.microsoft.com/en-us/library/azure/dn495299.aspx

@ enderb-ms @ taylorb-microsoft quelle image de départ WS2016 doit être utilisée pour cela?

@ppadala, il semble que vous puissiez activer automatiquement winrm lors du provisionnement sur azure avec EnableWinRMHttp. Détails ici: https://msdn.microsoft.com/en-us/library/azure/dn495299.aspx

Je fais déjà cela, ce qui ouvre les ports dans Azure. L'image doit également avoir WinRM activé et la configuration des règles de pare-feu Windows correctement. Peut-être que les gens de Microsoft peuvent intervenir ici, si je comprends mal cela.

concernant la question de WinRM vs OpenSSH.

Je pense que les deux devraient finalement être des options ... le travail d'OpenSSH pour Windows progresse (https://github.com/PowerShell/Win32-OpenSSH) mais il n'est pas encore complètement terminé (par exemple, il ne fonctionne pas encore sur Nano Server ). Je pense donc que WinRM est une bonne option pour le moment et nous pouvons ensuite superposer OpenSSH au fur et à mesure qu'il est disponible pour la parité avec les expériences Linux.

Bonjour @ppadala , certains de mes collègues ont quelques questions sur la mise à jour que vous prévoyez d'apporter au pilote Azure:

  1. Avez-vous l'intention de le tester avec Nano Server? Comment le pilote choisit-il quel système d'exploitation choisir?
  2. En utilisant les changements que vous allez apporter, ce scénario fonctionnera-t-il? «L'utilisateur utilise la fonction de création de docker-machine avec le pilote Azure pour provisionner une machine virtuelle hôte de conteneur Windows, puis utilise l'environnement de docker-machine pour commencer à gérer ses conteneurs à partir de la machine virtuelle à partir de son client»
  3. À quoi ressemblera la commande "docker-machine create" pour Windows?

De plus, je ne veux pas être insistant mais je suis curieux, une idée de la date de votre PR? Encore une fois, merci beaucoup pour cela!

En ce qui concerne la question de @friism , si cela peut fonctionner avec les images Full Server et Nano Server de WS2016, ce serait parfait.

  1. Avez-vous l'intention de le tester avec Nano Server? Comment le pilote choisit-il quel système d'exploitation choisir?

Oui. Le pilote fait simplement tourner n'importe quelle image de serveur Windows donnée comme une option similaire à la façon dont l'image linux est choisie avec l'option --azure-image. Cela dit, le nano serveur doit être testé.

  1. En utilisant les changements que vous allez apporter, ce scénario fonctionnera-t-il? «L'utilisateur utilise la fonction de création de docker-machine avec le pilote Azure pour provisionner une machine virtuelle hôte de conteneur Windows, puis utilise l'environnement de docker-machine pour commencer à gérer ses conteneurs à partir de la machine virtuelle à partir de son client»

Oui. C'est le cas d'utilisation principal. La fonctionnalité client reste la même, car tout ce que nous faisons est de faire tourner un hôte Docker de serveur Windows et de configurer des ports. Si le moteur Docker Windows prend en charge cela (ce qu'il fait), cela fonctionne.

  1. À quoi ressemblera la commande "docker-machine create" pour Windows?

Des options supplémentaires seraient --azure-os "windows", --azure-winrm-username "username", --azure-winrm-password "password" similaire à ce que @StefanScherer a suggéré ci-dessus.

En ce qui concerne la chronologie, j'ai déjà rebasé la plupart de mes modifications avec le nouveau pilote Azure (https://github.com/docker/machine/pull/3159), mais @ahmetalpbalkan , moi et quelques autres @ahmetalpbalkan ont fait un commentaire sur le retour à l'ancien pilote (https://github.com/docker/machine/issues/3201#issuecomment-199409527). Nous devons d'abord résoudre cette discussion pour aller plus loin. Si nous revenons à l'ancien pilote, il me sera plus facile de fusionner.

Participez-vous à Build? Ce serait formidable de se synchroniser en personne.

@ppadala je serai là! Docker organise également un déjeuner à 12 heures le 30 à Delarosa, 37 Yerba Buena. Ping @ ah3rz pour plus de détails

@ppadala Je ne serai pas chez Build, mais mon manager @ taylorb-microsoft le sera, donc vous pourrez vous synchroniser avec lui :-)

@ppadala vous avez mentionné que vous étiez débloqué , faites-nous savoir que nous pouvons faire quelque chose pour vous aider.

Mettre à jour. J'ai rebasé la plupart des changements, je suis capable de faire tourner les serveurs Windows. Nettoyage du code à soumettre pour extraction dans quelques jours.

Nous devons cependant décider de l'image du serveur Windows à utiliser comme image de machine virtuelle cible. Seule RDP est activée sur l'image officielle actuelle de Windows Server Core. J'ai besoin que WinRM soit activé dans l'image. Notez qu'il ne s'agit pas d'activer WinRM via Azure (https://msdn.microsoft.com/en-us/library/azure/dn495299.aspx) comme peu de gens l'ont suggéré. Cela ouvre uniquement les ports WinRM dans Azure. L'instance en cours d'exécution de l'image (capturée ultérieurement dans une nouvelle image via sysprep) doit avoir exécuté les commandes suivantes.

PS C:\> winrm set winrm/config/service/auth @{Basic=”true”}
PS C:\> winrm set winrm/config/service @{Allowunencrypted=”true”}
PS C:\> New-NetFirewallRule -Protocol TCP -LocalPort 5985 -Direction Inbound -Action Allow -DisplayName winrm
PS C:\> winrm quickconfig

Une autre difficulté est que l'installation du moteur Docker prend beaucoup plus de temps que l'installation côté Linux. La VM doit également être redémarrée. J'utilise les commandes suivantes pour l'installation du moteur Docker.

PS C:\> wget -uri https://aka.ms/tp4/Install-ContainerHost -OutFile C:\Install-ContainerHost.ps1
PS C:\> powershell.exe -NoProfile C:\Install-ContainerHost.ps1 -HyperV

Reboot

PS C:\> Install-ContainerImage -Name WindowsServerCore -Version 10.0.10586.0
PS C:\> wget https://raw.githubusercontent.com/Microsoft/Virtualization-Documentation/live/windows-server-container-tools/Update-ContainerHost/Update-ContainerHost.ps1 -OutFile Update-ContainerHost.ps1
PS C:\> ./Update-ContainerHost.ps1

Questions pour @ enderb-ms et @ahmetalpbalkan : Microsoft peut-il fournir une image sur laquelle WinRM est activé? Pendant que nous faisons cela, devrions-nous envisager de regrouper docker-engine également avec lui au lieu d'une installation à la demande? Bien que cela limite les utilisateurs à une version groupée spécifique de docker-engine, la machine virtuelle sera disponible beaucoup plus rapidement (sinon l'utilisateur exécute docker-machine et attend une heure ou plus pour obtenir son hôte docker Windows Server.).

Actuellement, j'ai créé une image personnalisée sur laquelle WinRM et docker-engine sont installés et configurés.

@ppadala est-ce que la succursale est publique partout? Avec la façon dont vous démarrez les VM, ne pouvez-vous pas exécuter des scripts d'initialisation comme ici? https://github.com/Azure/azure-quickstart-templates/blob/875d139c16c9c023dce519e6dd48c707e3473346/201-vm-winrm-windows/azuredeploy.json#L183

@ppadala est-ce que la succursale est publique partout? Avec la façon dont vous démarrez les VM, ne pouvez-vous pas exécuter des scripts d'initialisation comme ici? https://github.com/Azure/azure-quickstart-templates/blob/875d139c16c9c023dce519e6dd48c707e3473346/201-vm-winrm-windows/azuredeploy.json#L183

La branche est publique, mais je n'ai pas encore vérifié la dernière. Voyons si je peux faire ça.

@ppadala est-ce que la succursale est publique partout? Avec la façon dont vous démarrez les VM, ne pouvez-vous pas exécuter des scripts d'initialisation comme ici? https://github.com/Azure/azure-quickstart-templates/blob/875d139c16c9c023dce519e6dd48c707e3473346/201-vm-winrm-windows/azuredeploy.json#L183

J'ai essayé de transmettre les ressources, mais j'ai obtenu une erreur

Error creating machine: Error in driver during machine creation: compute/VirtualMachinesClient:CreateOrUpdate 400 Failure responding to request -- Original Error: azure: Service returned an error. Code="InvalidRequestContent" Message="The request content was invalid and could not be deserialized: 'Could not find member 'resources' on object of type 'ResourceDefinition'. Path 'resources', line 1, position 953.'." Status=400

Voici le code qui tente de le faire: https://github.com/ppadala/machine/blob/azure-windows/drivers/azure/azureutil/azureutil.go#L540. Vous pouvez voir les commits https://github.com/ppadala/machine/commits/azure-windows pour voir mes modifications pour obtenir le support Windows.

La bonne façon de procéder consiste à demander à Azure go-sdk d'exposer une fonction facile à utiliser pour préparer ce modèle de déploiement. Il est difficile de traduire les bons éléments à transmettre en consultant les modèles de déploiement json. @ahmetalpbalkan , des pensées?

Essentiellement, il existe deux voies.

  1. Avoir une image personnalisée avec WinRM (et éventuellement docker-engine) installé et configuré. Ensuite, le code que j'ai jusqu'à présent est prêt à être utilisé.
  2. Commencez à partir de l'image générique du serveur Windows 2016, déterminez l'installation via des modèles, puis procédez au reste des étapes telles que le téléchargement de certificats, etc.

@ppadala Je suis aussi perplexe. Je parie que l'API essaie de dire que vous ne pouvez pas spécifier d'extensions sur l'appel de création de VM. Par exemple, lorsque vous déployez un modèle ARM avec des extensions et que vous observez le déploiement, ARM crée d'abord la VM, puis crée la ressource Extension séparément une fois la VM créée ...

Il doit y avoir des méthodes pour ajouter des extensions aux VM dans le package arm/compute . Je suggère d'ajouter des extensions une fois la VM créée, cela devrait vous débloquer.

Merci @ahmetalpbalkan. J'ai ajouté VirtualMachineExtension après la création de la VM et cela a fonctionné. J'ai dû lutter un peu pour trouver la bonne façon de configurer les écouteurs WinRM HTTPS, mais j'ai la pull request # 3329 prête. Faites-moi part de vos commentaires.

J'ai également téléchargé les binaires sur https://www.dropbox.com/sh/kpc46xtc8su2sj7/AABtxVIVbGo8KLy7tu6HnWwza?dl=0 pour des tests faciles.

Utilisation: trois nouveaux paramètres sont ajoutés au pilote Azure

--azure-os "linux"                  OS for the Azure VM (Windows|Linux)
--azure-winrm-user "docker-user"    Username for WinRM login [$AZURE_WINRM_USER]
--azure-winrm-password              Password for WinRM login [$AZURE_WINRM_PASSWORD]

Exemple de commande

docker-machine -D create -d azure --azure-subscription-id $(cat ~/azure/subid) --azure-os "windows" --azure-image MicrosoftWindowsServer:WindowsServer:2016-Technical-Preview-with-Containers:2016.0.20151118 --azure-winrm-password "mysecretpassword" vhost-win-test

@ppadala @ahmetalpbalkan Je ne sais pas si vous l'avez déjà incorporé, mais cet article sur la sécurisation du démon Windows peut également être bon: https://github.com/Microsoft/Virtualization-Documentation/tree/master/windows-server- container-tools / DockerTLS

/ cc @PatrickLang @swernli

@ppadala Merci, c'est totalement génial. Je viens d'essayer l'exemple de commande pour créer une machine TP4 dans Azure. Et oui, cela a fonctionné avec vos binaires prédéfinis dès la sortie de la boîte. (ok, vous devez entrer un mot de passe plus complexe pour répondre aux exigences de complexité du mot de passe Windows)

Un moteur Docker sécurisé avec une commande simple docker-machine. C'est une grande percée!

$ ./docker-machine-Darwin-x86_64 -D create -d azure --azure-subscription-id $(pass azure) --azure-os "windows" --azure-image MicrosoftWindowsServer:WindowsServer:2016-Technical-Preview-with-Containers:2016.0.20151118 --azure-winrm-password $(pass azure-winrm-password) vhost-win-test
$ eval $(./docker-machine-Darwin-x86_64 env vhost-win-test)
$ docker version
Client:
 Version:      1.10.1
 API version:  1.22
 Go version:   go1.5.3
 Git commit:   9e83765
 Built:        Fri Feb 12 22:11:40 UTC 2016
 OS/Arch:      darwin/amd64

Server:
 Version:      1.10.0-dev
 API version:  1.22
 Go version:   go1.5.1
 Git commit:   59a341e
 Built:        Fri Nov 13 17:23:07 UTC 2015
 OS/Arch:      windows/amd64

@ppadala Et ce qui est encore plus fantastique, c'est qu'un docker-machine rm -f vhost-win-test nettoie TOUT - j'ai eu tant de difficultés à nettoyer toutes les parties d'une VM créée avec "deploy to azur", j'ai toujours manqué un bouton "undeploy from azur" 😄

@ppadala @ahmetalpbalkan Je ne sais pas si vous l'avez déjà incorporé, mais cet article sur la sécurisation du démon Windows peut également être bon: https://github.com/Microsoft/Virtualization-Documentation/tree/master/windows-server- container-tools / DockerTLS

Merci pour le lien @friism. Oui, le moteur docker est déjà sécurisé avec TLS similaire à Linux. docker-machine create workflow génère les informations d'identification (cert, key et ca) et j'utilise WinRM pour les télécharger sur Windows Server.

@ppadala Merci, c'est totalement génial. Je viens d'essayer l'exemple de commande pour créer une machine TP4 dans Azure. Et oui, cela a fonctionné avec vos binaires prédéfinis dès la sortie de la boîte. (ok, vous devez entrer un mot de passe plus complexe pour répondre aux exigences de complexité du mot de passe Windows)

Merci d'essayer @StefanScherer. Le mot de passe en clair est la seule partie que je n'aime pas ici (j'aime votre approche de passe). Nous pouvons passer à une authentification basée sur les certificats plus tard. Malheureusement, la bibliothèque de packer ne prend pas encore en charge cela.

@ppadala Et ce qui est encore plus fantastique, c'est qu'un docker-machine rm -f vhost-win-test nettoie TOUT - j'ai eu tant de difficultés à nettoyer toutes les parties d'une VM créée avec "deploy to azur", j'ai toujours raté un " bouton Annuler le déploiement depuis azur "😄

Le mérite revient à migré vers Azure ARM et avoir écrit un «nettoyage» propre.

@ppadala, c'est incroyable. Bon travail! Je suppose que la question sera maintenant de savoir comment fusionner cela avec le pilote azure à court terme et avec d'autres pilotes (tels que google / aws) à long terme.

@ahmetalpbalkan la demande d'extraction # 3329 est déjà synchronisée avec master et fusionnée avec le pilote azure, ce sera génial si vous pouvez consulter et fournir des commentaires. Actuellement, seul Azure dispose de machines virtuelles Windows Server 2016, mais le code est écrit de manière à faciliter la prise en charge de GCP, AWS, vSphere et autres.

Actuellement, seul Azure dispose de machines virtuelles Windows Server 2016, mais le code est écrit de manière à faciliter la prise en charge de GCP, AWS, vSphere et autres.

  • @ppadala
    Cela signifie-t-il que le soutien des fournisseurs de VM locaux est à l'horizon?

@ppadala @srounce Je dirais que quelqu'un devrait jeter un coup d'œil aux capacités d'exécution de WinRM et de script de démarrage des API AWS / GCE / autres pour savoir si la fonctionnalité peut être portée sur d'autres pilotes avec un ensemble minimal de modifications.

@ppadala @ahmetalpbalkan Le pilote docker-machine 'azure' peut-il être utilisé avec AzureStack ?

@nilleb J'ai bien peur que non. Si vous en avez besoin, veuillez ouvrir un autre numéro.

Je viens de télécharger le docker pour Windows qui a le 1.12 RC2 qui a le 0.8.0-rc1 mais quand j'essaye l'option "azure-os" "windows" cela ne semble pas fonctionner. Veuillez me faire savoir où je pourrais acquérir une version de docker-machine capable de créer des hôtes docker TP5 Windows 2016 sur Azure.

Merci,

@SharadGumaste quelle est l'erreur quand vous dites "ça ne marche pas"? avez-vous essayé de spécifier l'image avec --azure-image ?

Je viens de télécharger le docker pour Windows qui a le 1.12 RC2 qui a le 0.8.0-rc1 mais quand j'essaye l'option "azure-os" "windows" cela ne semble pas fonctionner. Veuillez me faire savoir où je pourrais acquérir une version de docker-machine capable de créer des hôtes docker TP5 Windows 2016 sur Azure.

@SharadGumaste Je suppose que vous avez essayé la version publiée. Le correctif pour la prise en charge de Windows (option windows azure-os) n'est pas encore fusionné.

Pradeep, oui j'ai fait la mise à jour depuis le logiciel docker. Quel est le meilleur
moyen d'obtenir des binaires de votre travail? Je suis très proche de faire une démo pour un
client, sauf que je ne peux pas créer un serveur Windows barebone et installer
docker héberge des éléments à partir de zéro et ajoute cette machine dans
docker-machine et créez et déployez à partir de Visual Studio.
Je suis bloqué aux certificats TLS etc ...

Merci d'avance pour toute aide.

Le jeudi 23 juin 2016, Pradeep Padala [email protected] a écrit:

Je viens de télécharger le docker pour Windows qui a le 1.12 RC2 qui
a le 0.8.0-rc1 mais quand j'essaye l'option "azure-os" "windows" il le fait
ne semble pas fonctionner. S'il vous plaît laissez-moi savoir où je pourrais acquérir un docker-machine
version qui peut créer des hôtes Docker TP5 Windows 2016 sur Azure.

@SharadGumaste https://github.com/SharadGumaste Je suppose que vous étiez
essayer la version publiée. Le correctif pour la prise en charge de Windows (azure-os
Windows) n’est pas encore fusionné.

-
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/2907#issuecomment -228218888,
ou couper le fil
https://github.com/notifications/unsubscribe/AH3YqqQLlXWUnSdw4i2TzsqXa4gHmTVYks5qOxt1gaJpZM4HKwbT
.

"A common mistake people make when trying to design something

complètement infaillible est de sous-estimer l'ingéniosité des imbéciles complets. "

– Douglas Adams, author (1952 – 2001)

@SharadGumaste pouvez-vous envoyer un mail à [email protected]? J'ai un référentiel séparé pour docker-machine pour Windows, je peux vous envoyer des instructions sur la configuration.

Y a-t-il des nouvelles concernant la rotation d'un hôte Windows Docker dans une VirtualBox locale?

Quelqu'un a-t-il un prototype capable de faire tourner des machines virtuelles Windows sur Azure?

@djanosik Je travaille à essayer de faire en sorte que docker-machine @ppadala , je l'ai https://github.com/davidarcher/machine/tree/azure_winrm .

J'ai suivi les instructions de @ jen20 pour créer une AMI Windows avec SSH. Il fonctionne avec Docker Machine jusqu'au moment de l'approvisionnement, où il échoue car il n'y a pas /etc/os-release fichier

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