Vous pouvez utiliser Docker Desktop pour Windows comme moteur et Docker pour Linux comme client dans WSL sur Ubuntu / Debian sur Windows. Connectez-les via TCP.
Installez Docker Desktop pour Windows : https://hub.docker.com/editions/community/docker-ce-desktop-Windows Si vous souhaitez utiliser des conteneurs Windows au lieu de conteneurs Linux, les deux types de conteneurs peuvent être gérés par le client docker Linux dans l'espace utilisateur bash.
Depuis la version 17.03.1-ce-win12 (12058) vous devez vérifier Exposer le démon sur tcp://localhost:2375 sans TLS pour permettre au client Docker Linux de continuer à communiquer avec le démon Docker Windows par TCP
Suivez les étapes suivantes :
cd
wget https://download.docker.com/linux/static/stable/`uname -m`/docker-19.03.1.tgz
tar -xzvf docker-*.tgz
cd docker
./docker -H tcp://0.0.0.0:2375 ps
ou
env DOCKER_HOST=tcp://0.0.0.0:2375 ./docker ps
Pour le rendre permanent :
mkdir ~/bin
mv ~/docker/docker ~/bin
Ajoutez les variables correspondantes au fichier .bashrc
export DOCKER_HOST=tcp://0.0.0.0:2375
export PATH=$PATH:~/bin
Bien sûr, vous pouvez installer docker-compose
sudo -i
curl -L https://github.com/docker/compose/releases/download/1.24.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
Ou en utilisant Python pip
sudo apt-get install python-pip bash-completion
sudo pip install docker-compose
Et l'achèvement du Bash. La meilleure partie :
sudo -i
apt-get install bash-completion
curl -L https://raw.githubusercontent.com/docker/docker-ce/master/components/cli/contrib/completion/bash/docker > /etc/bash_completion.d/docker
curl -L https://raw.githubusercontent.com/docker/compose/$(docker-compose version --short)/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose
Je l'ai testé en utilisant la version 2.1.0.1 (37199) de Docker Desktop en utilisant Hyper-V :
$ docker version
Client: Docker Engine - Community
Version: 19.03.1
API version: 1.40
Go version: go1.12.5
Git commit: 74b1e89e8a
Built: Thu Jul 25 21:17:37 2019
OS/Arch: linux/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 19.03.1
API version: 1.40 (minimum version 1.12)
Go version: go1.12.5
Git commit: 74b1e89
Built: Thu Jul 25 21:17:52 2019
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: v1.2.6
GitCommit: 894b81a4b802e4eb2a91d1ce216b8817763c29fb
runc:
Version: 1.0.0-rc8
GitCommit: 425e105d5a03fabd737a126ad93d62a9eeede87f
docker-init:
Version: 0.18.0
GitCommit: fec3683
Look both client and server say **OS/Arch: linux/amd64**
Volumes
Faites attention lorsque vous ajoutez des volumes. Le chemin C:\dir
sera visible en tant que /mnt/c/dir
sur le WSL et en tant que /c/dir/
par le moteur de docker. Vous pouvez le surmonter de façon permanente :
sudo bash -c "echo -e '[automount] \nroot = /'>/etc/wsl.conf"
Vous devez quitter et recharger WSL après avoir fait le changement à wsl.conf pour que WSL lise vos changements au lancement.
アップデイト
de : Nouveautés de la ligne de commande dans la version 1803 de Windows 10
Sockets Unix Les sockets Unix n'étaient pas supportés par Windows, et maintenant ils le sont ! Vous pouvez également communiquer via des sockets Unix entre Windows et WSL. L'un des avantages de cette fonctionnalité est qu'elle permet à WSL d'exécuter le client Docker Linux pour interagir avec le démon Docker sous Windows.
アップデイト
Ce script et l'utilisation de Unix Sockets a été inclus dans Pengwin de pengwin-setup.
Saludos