Você pode usar o Docker Desktop Para Windows como o mecanismo e o Docker Para Linux como o cliente no Wsl no Ubuntu / Debian no Windows. Conecte-os via TCP.
Instalar Docker Desktop Para Windows: https://hub.docker.com/editions/community/docker-ce-desktop-windowsSe você quiser usar contêineres do Windows em vez de contêineres do Linux, ambos os contêineres de tipo podem ser gerenciados pelo Cliente Linux docker no bash userspace.
Desde a versão 17.03.1-ce-win12 (12058) você deve verificar Expor daemon em tcp: / / localhost: 2375 sem TLS para permitir que o cliente Linux Docker continue se comunicando com o daemon do Windows Docker por TCP
Proceder:
cdwget https://download.docker.com/linux/static/stable/`uname -m`/docker-19.03.1.tgztar -xzvf docker-*.tgzcd docker./docker -H tcp://0.0.0.0:2375 ps
ou
env DOCKER_HOST=tcp://0.0.0.0:2375 ./docker ps
Para torná-lo permanente:
mkdir ~/binmv ~/docker/docker ~/bin
Adicione as variáveis correspondentes A.bashrc
export DOCKER_HOST=tcp://0.0.0.0:2375export PATH=$PATH:~/bin
Claro, você pode instalar o docker-compose
sudo -icurl -L https://github.com/docker/compose/releases/download/1.24.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-composechmod +x /usr/local/bin/docker-compose
Ou usando python pip
sudo apt-get install python-pip bash-completionsudo pip install docker-compose
E conclusão Bash. Melhor:
sudo -iapt-get install bash-completioncurl -L https://raw.githubusercontent.com/docker/docker-ce/master/components/cli/contrib/completion/bash/docker > /etc/bash_completion.d/dockercurl -L https://raw.githubusercontent.com/docker/compose/$(docker-compose version --short)/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose
Eu testei usando a Versão 2.1.0.1 (37199) do Docker Desktop usando Hyper-V:
$ docker versionClient: 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: falseServer: 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: fec3683Look both client and server say **OS/Arch: linux/amd64**
Volume
Tome cuidado ao adicionar volumes. Caminho C:\dir
será visível como /mnt/c/dir
em WSL e como /c/dir/
pelo docker engine. Você pode superá-lo permanentemente:
sudo bash -c "echo -e '[automount] \nroot = /'>/etc/wsl.conf"
Você deve sair e recarregar WSL depois de fazer a alteração para wsl.conf para que o WSL leia suas alterações no lançamento.
ACTUALIZACAO
de: O que há de novo para a linha de comando no Windows 10 versão 1803
Sockets Unix Soquetes Unix não eram suportados no Windows, e agora eles são! Você também pode se comunicar em soquetes Unix entre Windows e WSL. Uma das grandes coisas sobre isso é que ele permite que o WSL execute o cliente Linux Docker para interagir com o Daemon Docker em execução no Windows.
ACTUALIZACAO
Este script e o uso de soquetes Unix foram incluídos em Pengwinpengwin-setup.
Cumprimento