O subsistema Windows para Linux já é minha maneira favorita de executar o Linux sem sair do Windows e agora está prestes a ficar ainda melhor. Como? Integrando contêineres Linux para que você possa executá-los sem instalar uma distribuição. Isso é uma boa notícia para os desenvolvedores, mas possivelmente uma má notícia para o Docker, porque você não precisará mais do aplicativo Docker Desktop.
Mas eu? Estou animado com esta notícia. Sempre não gostei do aplicativo Docker Desktop e de como alguns aspectos de segurança e rede são tratados na pilha do Docker. Agora você poderá usar WSL, tornando um pouco mais fácil gerenciar cargas de trabalho em contêineres em seu PC com Windows.
Testei dual boot, WSL2 e máquinas virtuais para rodar aplicativos Linux no Windows e valeu a pena manter apenas uma
Inicialização dupla, máquinas virtuais e WSL2 estão chegando ao Windows PC…
Cargas de contêineres são um uso inteligente de recursos de computador
Eu simplesmente não gosto de como o Docker faz as coisas
Não me importo com os recipientes e os uso todos os dias. Eles são um uso eficiente de recursos computacionais e uma forma repetível de experimentar diferentes ferramentas e configurações. Tudo isso é bom, e eu prefiro LXC no Proxmox em vez de VMs, especialmente ao executar fluxos de trabalho acelerados por GPU.
Não gosto da maneira como o Docker lida com as coisas. Ser capaz de criar contêineres como root é uma má notícia, então o Podman é executado sem root por padrão. O Docker executa todos os seus contêineres na mesma máquina virtual de utilitário compartilhado com recursos compartilhados, incluindo a pilha de rede.
Isso o torna inseguro aos meus olhos porque não temos controle sobre as imagens acima. Se um deles for infectado por malware e for baixado, toda a pilha será afetada. A única maneira de obter controle é adquirir licenças Docker Business, que fornecem acesso a listas de permissões e outros recursos de segurança que a edição doméstica gratuita não possui.
Também não gosto do aplicativo Docker Desktop; está inchado e não muito bem organizado. Prefiro usar o Docker com Linux sempre que possível para poder usar o tempo de execução do Linux, e agora poderei remover todo esse aplicativo de terceiros da instalação do Windows. Essa é a beleza dos contêineres WSL, eles já fazem parte do WSL e serão atualizados quando o Windows for atualizado.
LXCs são mais seguros por padrão
Eles não estão todos juntos como os contêineres Docker
WSL Containers criará máquinas virtuais Hyper-V dedicadas para cada contêiner com armazenamento, rede e recursos separados. Na minha opinião, esta é uma grande vitória na forma como o Docker lida com as coisas, dando-me mais segurança e tranquilidade ao executar contêineres no mainframe. Não há kernel e Docker Engine compartilhados, portanto, um contêiner comprometido não pode tocar nos outros.
Claro, isso significa que meu computador usa mais recursos em geral, mas essa é uma compensação com a qual estou disposto a conviver. De qualquer forma, meus contêineres gerenciados localmente são apenas para desenvolvimento; tudo o que planejo fazer no longo prazo é colocado sobre mim Nós Proxmoxonde têm acesso a mais recursos.
Os contêineres WSL perderão algumas coisas na inicialização
Das coisas que a Microsoft disse que inicialmente não aconteceria, há apenas uma que me interessa. Possui suporte para Docker Compose, então posso executar vários contêineres em um único contêiner WSL. Sei que isso pode parecer estranho, considerando o que acabei de dizer sobre segurança, mas uso sidecars Tailscale em meus contêineres para facilitar a rede, e isso é impossível sem o Compose. Posso lidar com isso até que a Microsoft adicione funcionalidade e não seja um obstáculo de forma alguma.
Acho o painel GUI do Docker Desktop horrível e sempre instalo o Portainer ou outra ferramenta de gerenciamento para gerenciar meus contêineres. O Docker Scout não tem equivalente em contêineres WSL, mas o Windows Defender pode verificar imagens antes que o contêiner seja habilitado. E eu mudo entre Podman, Docker e LXC o suficiente para não ficar sem memória do Docker, então não sentirei falta se o WSL me forçar a gerenciar contêineres com comandos diferentes.
Docker suporta apenas GPUs Nvidia para passagem no Windows
Os contêineres Linux também poderão usar Intel e AMD
Aqui está um grande problema sobre o qual muitas pessoas parecem não estar falando. As tarefas aceleradas por GPU agora estão em toda parte, e o Docker no Windows só funciona para aceleração se você tiver uma GPU Nvidia instalada. Esta é uma grande limitação para os desenvolvedores, mas não existe tal limitação no WSL.
Pegue Immichpor exemplo, nosso contêiner favorito para bibliotecas de imagens auto-hospedadas para reduzir a dependência da nuvem. As tarefas de aprendizado de máquina acelerado por hardware só são totalmente suportadas no Linux ou WSL2, não no Windows. Não é uma limitação de hardware, pois suporta Arm (Mali), Nvidia (CUDA), AMD (ROCm), Intel (OpenVINO) e Rockchip (RKNN) como backends. Sem ele, todas as tarefas precisam ser realizadas pela CPU, o que limita o que você pode fazer.
Mudar GPUs para LXC supera o Proxmox para máquinas virtuais e é muito mais fácil do que você pensa
Não faz sentido desperdiçar recursos de GPU em máquinas virtuais quando o LXC pode compartilhar a mesma placa
Estou feliz em abandonar o Docker Desktop em favor dos contêineres WSL
Usei WSL extensivamente para executar ferramentas Linux sem trocar de sistema operacional. Gosto de sua rapidez em comparação com os hipervisores de camada 2 que uso e de sua integração com a área de trabalho do Windows. Ter que lembrar combinações estranhas de teclas ou usar complementos extras para copiar e colar de um aplicativo no Windows foi uma dor, e estou feliz que isso tenha desaparecido. Estou ansioso por outra ferramenta de terceiros quando vier com contêineres WSL. A única coisa que sentirei falta no início é o suporte para Docker Compose, que não estará disponível no WSL a princípio, mas espero que a Microsoft o adicione em breve.







