web-dev-qa-db-fra.com

Docker.io pour Windows

Je lisais une bonne question sur docker - la réponse a un aperçu de les détails de la mise en oeuvre de docker . Je me demandais si quelque chose comme cela est possible sur la plate-forme Windows.

  • Existe-t-il des alternatives Windows pour Docker? 
  • Est-il théoriquement possible d'utiliser d'autres composants (basés sur Windows) pour le construire?

Update1:

Update2::

Pour plus d’informations, comment installer Docker sur Windows (non lié) - document officiel contient des instructions utiles pour configurer l’environnement à l’aide de boot2docker VM.

36
Jiri

Vous pouvez exécuter docker sur une machine virtuelle.


Nouvelle mise à jour

Vagrant a maintenant intégré le support de docker. Il peut être utilisé en tant que fournisseur ou en tant que fournisseur. Voici quelques liens utiles.

Aperçu des fonctionnalités: Environnements de développement basés sur Docker

Vagrant Docs: Docker Provisioner

Vagrant Docs: Docker Provider


Ancienne mise à jour

Comme Seanf l'a souligné dans un commentaire ci-dessous, le soutien de Vagrant a été abandonné. Au lieu de cela, ils pointent vers boot2docker :

boot2docker est une distribution Linux légère basée sur Tiny Core Linux spécialement conçu pour exécuter les conteneurs Docker. Il fonctionne complètement de la RAM, pèse environ 24 Mo et démarre en ~ 5s (YMMV).

Ancienne réponse

La documentation officielle de docker contient un petit guide pour l’installer dans une boîte Vagrant. Vagrant est un excellent wrapper de gestion vm. Le guide est pour Mac/Linux, mais vous avez l’idée de faire de même sous Windows:

http://docs.docker.io/en/latest/installation/vagrant/

De cette façon, vous pouvez partager des images du menu fixe sur plusieurs systèmes avec différents systèmes d'exploitation.

22
Alp

Si vous cherchez simplement un moyen de déployer un ensemble d’applications pré-packagées dans un conteneur pour Windows, avec un accès au registre et aux fichiers virtualisé, sans utiliser d’image de machine virtuelle complète, ces sandbox comme les applications pourraient être intéressant de regarder:

Edit: Il y a un nouveau venu dans le bloc, Spoon supporte les conteneurs pour Windows , et cela semble en fait très prometteur.

8
sschuberth

J'ai constaté qu'au moins une fonctionnalité liée au système de fichiers avait Windows (7,8) déjà en place. On peut utiliser des fichiers VHD (disques virtuels) pour gérer le concept "d'images" dans Docker. Ces images sont utilisées pour la machine virtuelle mais peuvent également être créées/attachées/utilisées directement par Windows:

diskpart
DISKPART> create vdisk file=c:\base-image.vhd maximum=200 type=expandable

La nouvelle image peut être superposée sur l’image de base:

DISKPART> create vdisk file=c:\image-2.vhd parent=c:\base-image.vhd

Voir plus d'informations sur gestion des disques virtuels .

Malheureusement, l'isolation et le sandboxing de processus légers ne sont probablement pas possibles (du moins, pas simples), bien que certaines méthodes existent ( http://www.sandboxie.com/ , Native Client dans Google Chrome ...)

6
Jiri

Microsoft travaille sur son propre conteneur Hyper-V similaire à Docker - Azure prend également en charge l'infrastructure Docker.

Cela dit, il est difficile de donner des alternatives précises, mais du côté de Windows, nous utilisons App-V depuis assez longtemps, qui virtualise et met en place des applications en mode bac à sable pour pouvoir les exécuter ou les diffuser sans être réellement installées sur un système spécifique. Je ne me suis jamais mêlé de cela, mais il semble pouvoir fonctionner comme un client autonome sans avoir besoin de l’infrastructure de serveur complexe habituellement utilisée par Microsoft.

Sous un autre angle, le format d’image disque utilisé par Windows (VHD) prend en charge la différenciation standard, ce qui vous permet d’exécuter facilement de nombreuses machines virtuelles à partir d’une seule image de système d’exploitation en lecture seule, chaque machine virtuelle disposant d’une petite image en écriture pour gérer les différences. Ce sont toujours des machines virtuelles à part entière.

3
Oskar Duveborn
2
marengz

Je ne connais actuellement aucun moyen de faire la même chose sur les fenêtres natives à l'heure actuelle.

Je ne pense pas que le noyau Windows ait été conçu pour ce genre de chose. Pour le prendre en charge, Microsoft devra donc ajouter des fonctionnalités au noyau Windows. Si je me trompe, corrigez-moi s'il vous plaît.

Le moyen le plus courant pour les utilisateurs de procéder de la sorte consiste à utiliser un VM dans Windows exécutant un système d’exploitation sous Linux et à tout exécuter à l’intérieur. Vous pouvez aussi faire la même chose en utilisant FreeBSD (Jails) et Solaris (zones), si c'est plus votre tasse de thé. Mais Docker ne prend actuellement pas en charge FreeBSD ou Solaris. Vous devrez donc utiliser les outils natifs pour cela.

2
Ken Cochrane

À compter de juin 2016, Docker peut être exécuté sur la virtualisation Microsoft Hyper-V sur des hôtes Windows 10. C’est maintenant le moyen préféré et "officiel" d’exécuter Docker sous Windows.

https://docs.docker.com/engine/installation/windows/

Hyper-V est un Type-1-Hypervisor , ce qui signifie que docker exécutera une couche plus proche du matériel de l'hôte et fonctionnera beaucoup plus rapidement que boot2docker (qui utilise VirtualBox, un Hypervisor de Type-2, s'exécutant dans le système d'exploitation hôte). .

L’avantage en termes de performances pour le menu fixe présente également des inconvénients: l’activation de Hyper-V empêchera les fonctionnalités de virtualisation matérielle pour les hyperviseurs de type 2; par conséquent, les images VirtualBox existantes ne peuvent pas être utilisées avec VTx et vous pouvez envisager de déplacer d’autres systèmes d’exploitation virtualisés vers V aussi.

Les hôtes Windows 7-8.1 peuvent toujours utiliser boot2docker pour exécuter les conteneurs Docker, mais le principal objectif de développement de Docker sous Windows est le "nouveau" Hyper-V-Docker.

1
Leon Adler

Hyper-V est uniquement sur Windows Pro. Installez-le pour £ 110.

Ou simplement installer Vagrant, VirtualBox, GIT bash, puis depuis votre terminal GIT bash.

git clone [email protected]:danday74/vagrant-docker-skelly.git
cd vagrant-docker-skelly
vagrant up # takes approx 5 mins to create VM
vagrant ssh
docker -v
docker-compose -v

Le fichier Vagrant montre que:

1 - il s’agit d’un Xenial VM avec menu fixe et composition installée dessus

2 - Les ports mappés de l'hôte sur la VM sont 9900-9920

3 - Le dossier partagé est partagé entre l'hôte et la machine virtuelle.

Tweak cela comme vous le souhaitez.

1
danday74

Je me suis fatigué de me battre avec un plugin Maven Docker et je me suis dit que je serais capable de le simuler. C'est ainsi:

L'utilisation de boot2docker et du fichier bat suivant donne l'impression que vous utilisez docker en mode natif. Placez-le sur votre chemin.

@set SSH="C:\Program Files (x86)\Git\bin\ssh.exe"
@set RUN_REMOTE='docker %*'
@ %SSH% -o IdentitiesOnly=yes -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o LogLevel=quiet -p 2022 -i %HOMEPATH%/.ssh/id_boot2docker -tt docker@localhost %RUN_REMOTE%

Le fichier ssh.exe provient du paquet msys-git fourni avec boot2docker. Je suis à peu près sûr que cette solution a pas mal de mises en garde, mais ça marche plutôt bien pour moi. Placez ce fichier sur votre chemin et votre oncle de Bob.

0
Markus T