Ubuntu no Windows 10: Docker vs WSL

11

Entendo que atualmente é possível executar o Ubuntu no Windows 10 de duas maneiras diferentes:

  1. Usando o Subsistema Windows para Linux (WSL).
  2. Instalando a janela de encaixe para Windows 10 e use um contêiner com o Ubuntu.

No entanto, não consegui encontrar uma explicação fácil de entender sobre quais são as diferenças entre eles (falando sobre aplicativos), bem como vantagens e desvantagens.

Eu encontrei um post falando sobre o uso do docker na WSL: Ubuntu via (Windows Linux Subsystem) e Docker . Mas estou falando sobre usá-lo diretamente no Windows 10. Portanto, aprecio qualquer informação sobre esses dois.

alvgom
fonte
Não sou especialista em nenhum deles para escrever uma resposta, mas meu voto é para Docker. O motivo é que o Docker implica virtualização, portanto as coisas devem funcionar. A WSL, por outro lado, está cheia de bugs. Ele funciona para benchmarks, diversão e principalmente desenvolvimento; mas se você estiver prestes a implantar algo sério, a escolha não é sua, pelo menos ainda não.
Hi-Angel

Respostas:

14

Atualizado 2020/02/18 para refletir as alterações introduzidas na WSL2

Oi! Microsoft PM trabalhando em WSL e linha de comando aqui.

A WSL permite executar binários Linux ELF-64 nativos e não modificados diretamente no Windows e permite executar suas ferramentas Linux favoritas no topo do sistema operacional "host" do Windows.

O WSL1 adotou uma abordagem de adicionar uma camada compatível com syscall do Linux na parte superior do kernel do NT, permitindo que os binários do Linux executem no NT, compartilhando o mesmo sistema de arquivos, rede, lista de processos etc. do sistema operacional host.

O WSL2, que será lançado em breve, por outro lado, executa os binários das distros nos contêineres Linux, no topo de um kernel real do Linux, dentro de uma VM leve que aloca apenas a RAM necessária para os aplicativos executados e libera a RAM liberada de volta ao SO host. Isso fornece 100% de compatibilidade com o Linux e permite que suas ferramentas Linux funcionem com desempenho quase nativo e consome os recursos mínimos necessários do host, garantindo que sua máquina funcione de forma rápida e sem problemas.

Antes do WSL2, era possível executar o cliente Docker no WSL1, usando-o para conduzir o Docker for Windows executando no topo do Hyper-V no host local ou para gerenciar um servidor Docker remoto. Mas não se pode executar o Docker Engine no WSL1 por vários motivos técnicos.

No entanto, você pode fazer o mesmo no Docker no WSL2, mas também pode executar o próprio Docker Engine no topo do WSL, se preferir. Esse é o caminho preferido e futuro do Docker para executar o Docker na área de trabalho do Windows .

Para saber mais sobre a WSL, consulte os vídeos e documentos aqui: https://aka.ms/learnwsl

Rich Turner
fonte
Eu acho que essa resposta se refere à WSL, a WSL 2 executa um kernel Linux personalizado, que faz interface com o Windows. Eu acredito que o kernel do linux do Windows personalizado roda em uma VM.
Jordan Stewart
1
Sim. Acabei de publicar uma atualização para refletir melhor a nossa realidade WSL2 :)
Rich Turner
2

Está correto. Uma coisa que você deixa de mencionar é que a WSL atualmente é bastante lenta em io, mesmo com um rápido ssd / lotes de cpu ram / 8-core xeon. Ainda é um problema em 01/2019. Acabei de fazer um raio @ DESKTOP-O0MT13B: / mnt / c / Users / rayjh $ dd se = / dev / zero de = teste bs = contagem de 64k = 16k conv = 16k conv = fdatasync na minha estação de trabalho com um SSD samsung e só tenho 97,6 MB / s.

Rodando o bare metal ubuntu LTS esta caixa terá VÁRIAS vezes isso. Não importa os problemas intermináveis ​​ao tentar combinar o WSL com o VSCODE.

Estou limpando o windows 10 daqui e instalando o ubuntu 18.04LTS.

rayj
fonte
Você não precisa ser tóxico, especialmente no final. Em vez disso, conte-nos o que você fez para pesquisar a causa dos problemas que está enfrentando e se são problemas conhecidos ou não e se alguém está trabalhando para corrigi-los ou não. Tenho certeza que eles são embora. E você não precisa desinstalar o Windows, basta instalar o gerenciador de hyper-v e instalar o Ubuntu rapidamente e está pronto para um ambiente de desenvolvimento Linux, se quiser trabalhar dentro de um Desktop Linux virtual. Caso contrário, continue usando o WSL e aguarde os problemas serem corrigidos. 97 MB / s não é tão lento.
Paul-Sebastian Manole,
AFAIK, os problemas de velocidade estão relacionados ao subsistema de acesso a arquivos do Windows e uma solução alternativa está em andamento.
Paul-Sebastian Manole,
WSL ainda parece lento. Mas ele tem um tempo de inicialização muito rápido e permite o uso de ferramentas comuns do linux cli. Mapear o sistema de arquivos linux e windows parece complicado.
Jordan Stewart
Ficou perceptivelmente mais rápido. No entanto, tentei usar o miniconda e instalar pacotes e ainda estava um pouco lento.
rayj 21/02