web-dev-qa-db-fra.com

Conteneur Linux Docker sur Windows Server 2016

Quelle est la façon d'exécuter le conteneur Docker Linux sur Windows Server 2016? Avec Docker pour Windows, c'est facile à faire dans Windows 10. Est-ce le seul moyen d'installer Docker Toolbox et d'ignorer la fonctionnalité de conteneurs intégrés tous ensemble?

13
Natalia

Il est possible d'utiliser des conteneurs Linux sur W2016. C'est un peu hacky cependant. L'utilisateur " Algore " l'a décrit ici mais je l'ai copié dans cette réponse, bien sûr.

  • Téléchargez "Docker pour Windows": https://docs.docker.com/docker-for-windows/

  • Installez "Docker pour Windows" sur Windows 10 Pro.

  • Copie C:\Program Files\Docker de la machine Windows 10 vers C:\Program Files sur votre box Server 2016.

  • Sur la boîte W2016, exécutez install-windowsfeature hyper-v,containers

  • Copiez ces entrées de registre dans un fichier et importez-les sur votre serveur Server 2016 (importation reg):

---DÉBUT---
Éditeur de registre Windows version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Docker Inc.]

[HKEY_LOCAL_MACHINE\SOFTWARE\Docker Inc.\Docker]

[HKEY_LOCAL_MACHINE\SOFTWARE\Docker Inc.\Docker\1.0]
"AppPath" = "\" C:\Program Files\Docker\Docker\Docker for Windows.exe\""
"BinPath" = "\" C:\Program Files\Docker\Docker\resources\bin\""

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Application\DockerService]
"EventMessageFile" = hex (2): 43,00,3a, 00,5c, 00,57,00,69,00,6e, 00,64,00,6f, 00,77,\00 , 73,00,5c, 00,4d, 00,69,00,63,00,72,00,6f, 00,73,00,6f, 00,66,00,74,00,2e, 00,\4e, 00,45,00,54,00,5c, 00,46,00,72,00,61,00,6d, 00,65,00,77,00,6f, 00,72,00,6b,\00,36,00,34,00,5c, 00,76,00,34,00,2e, 00,30,00,2e, 00,33,00,30,00,33,00,31,00 ,\39,00,5c, 00,45,00,76,00,65,00,6e, 00,74,00,4c, 00,6f, 00,67,00,4d, 00,65,00, 73,\00,73,00,61,00,67,00,65,00,73,00,2e, 00,64,00,6c, 00,6c, 00,00,00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\com.docker.service] "Type" = dword: 00000010 "Start" = dword: 00000002 "ErrorControl" = dword: 00000000 "ImagePath" = hex (2): 22,00,43 , 00,3a, 00,5c, 00,50,00,72,00,6f, 00,67,00,72,00,61,00,\6d, 00,20,00,46,00,69, 00,6c, 00,65,00,73,00,5c, 00,44,00,6f, 00,63,00,6b, 00,65,\00,72,00,5c, 00,44,00 , 6f, 00,63,00,6b, 00,65,00,72,00,5c, 00,63,00,6f, 00,6d, 00,\2e, 00,64,00,6f, 00, 63,00,6b, 00,65,00,72,00,2e, 00,73,00,65,00,72,00,76,00,69,\00,63,00,65,00,22 , 00,00,00
"DisplayName" = "Docker pour Windows Service"
"ObjectName" = "LocalSystem"
"Description" = "Exécuter le service backend Docker pour Windows"
---FIN---

Vous pouvez ajouter une entrée à currentversion\run ou à un travail planifié si vous souhaitez que docker for windows.exe démarre automatiquement.

  • Redémarrez l'ordinateur et exécutez le script PowerShell C:\Program Files\Docker\Docker\Resources\mobylinuxvm.ps1 -Create

Examinez ce fichier ps1 et notez que vous pouvez définir diverses options. Veuillez vous référer à ces sites Web:

https://docker-saigon.github.io/post/Docker-Beta/
https://jpetazzo.github.io/2013/10/16/configure-docker-bridge-network/

  • Assurez-vous que le service Docker com.docker.service (start-service com.docker.service) est en cours d'exécution avant de commencer C:\Program Files\Docker\Docker for Windows.exe

Si vous utilisez le serveur principal et que vous ne disposez pas de l'icône de la barre d'état, cliquez sur "modifier les paramètres de confidentialité" lorsque la notification s'affiche une fois qu'il commence à accéder aux paramètres (ou modifiez le json dans programdata)

Si vous rencontrez des problèmes lors de l’essai et de la reconstruction, consultez le C:\Program Files\Docker\Docker\Resources\forceremovedocker.ps1 fichier pour les emplacements où supprimer les paramètres comme dans C:\programdata. Je déconseille d'exécuter le script car il supprime toutes les choses liées au docker. Il suffit d'en utiliser des morceaux.

7
Boggin

Selon this de Stefan Scherer, il est possible d'exécuter des conteneurs Linux sur Server 2016. Les instructions sont les suivantes:

Créer une machine Linux Docker dans Hyper-V

Si vous voulez essayer plusieurs architectures, vous utilisez également docker-machine pour créer un moteur Linux Docker fonctionnant dans Hyper-V. J'ai préparé un script qui mettra tout en place car il y a des problèmes connus.

C:\vagrant\scripts\create-hyperv-linux-docker-machine.ps1

Ce script PowerShell crée une machine Docker et met à jour Docker Engine vers la dernière version afin que le client Windows Docker puisse communiquer avec Linux Docker Engine.

Utilisez la machine Linux Docker

Ouvrez un terminal PowerShell en tant qu'administrateur et sélectionnez la machine Linux Docker avec

docker-machine env --Shell powershell | iex

Exécutez maintenant votre premier conteneur de boîte occupée avec

docker run -it busybox uname -a
5
Dave

Malheureusement, il n'est actuellement pas possible d'installer facilement l'outil "Docker pour Windows". Ce programme d'installation fournit un léger VM appelé MobyLinux qui permet d'exécuter des conteneurs Linux sur Windows Server 2016. Vous pouvez trouver un tentative d'installation hacky (que je n'ai pas essayé) sur les forums Docker.

Pour référence, il y a bonne discussion sur ce qui se passe dans les coulisses avec "Docker pour Windows".

4
William Denman

Téléchargez et installez simplement Docker sur Windows Server 2016 https://www.docker.com/docker-windows
Si vous exécutez Windows Server 2016 en tant que VM utilisant Hyper-V, assurez-vous de vérifier ce document MS https://docs.Microsoft.com/en- us/virtualization/hyper-v-on-windows/user-guide/nested-virtualization

1
Serge Voloshenko