Dev Container CLI

O argumento da XDA neste mês é que a atualização mais inteligente do VS Code não é outra extensão de autocomplete, mas dev containers. O raciocínio faz sentido. Um dev container é um ambiente Linux com escopo de pasta definido por um arquivo devcontainer.json, com seu tempo de execução de linguagem, pacotes do sistema e extensões de editor fixados. Abra a pasta em um editor compatível e a ferramenta reconcilia o container a partir desse arquivo, para que um clone novo atinja um estado funcional sem uma página de configuração manual. Testamos oito aplicativos para executar dev containers no Windows, macOS e Linux, selecionados por quão bem eles lidam com a especificação real devcontainer.json e pelo que acontece quando um colega em um sistema operacional diferente abre a mesma pasta.

O que procurar em um aplicativo de dev container

Nem toda ferramenta de container entende a especificação de dev containers, e as que entendem funcionam em runtimes muito diferentes.

Comparação rápida

Aplicativo Melhor para Plataformas Plano gratuito Preço inicial Recurso destaque
Docker Desktop Runtime padrão, usuários de GUI Windows, macOS, Linux Gratuito para pessoal / pequeno negócio Nível comercial por assento/mês Cobertura de ferramenta mais ampla
Podman Desktop Substituto do Docker sem root Windows, macOS, Linux Gratuito, código aberto Gratuito Funciona sem root por padrão
DevPod Mesmo container em laptop, K8s ou nuvem Windows, macOS, Linux Gratuito, código aberto Loft Pro para equipes Modelo de provedor para dev em nuvem
OrbStack Docker mais rápido no macOS macOS Gratuito para pessoal Nível pago para comercial VirtioFS, pegada de RAM baixa
Rancher Desktop Docker mais um verdadeiro K8s local Windows, macOS, Linux Gratuito, código aberto Gratuito k3s integrado
Colima Docker leve sem GUI no macOS/Linux macOS, Linux Gratuito, código aberto Gratuito Sem GUI, sobrecarga baixa
Distrobox Desktops Linux em container Linux Gratuito, código aberto Gratuito Executa aplicativos de GUI de containers
GitHub Codespaces Dev containers hospedados na nuvem Web, VS Code, JetBrains Horas mensais gratuitas Por hora após cota Mesmo devcontainer.json, na nuvem

Os aplicativos

1. Docker Desktop — Melhor para o runtime padrão com o ecossistema mais amplo

Docker Desktop ainda é o que a especificação de dev containers assume no primeiro dia. Instale, instale a extensão Dev Containers no VS Code, e “Reopen in Container” funciona sem configuração. Ele agrupa Docker Engine, Kubernetes e o plugin compose, e gerencia a VM Linux no Windows e macOS para que você nunca toque WSL ou uma instância de Lima diretamente.

Onde ele falha: Os termos de assinatura mordem para organizações maiores. Qualquer coisa acima de 250 funcionários ou 10 milhões de USD em receita requer um assento Business. Uso de startup e pessoal ainda é gratuito, mas leia a licença antes de implantá-la em uma frota.

Preços:

Plataformas: Windows, macOS, Linux

Download: docker.com/products/docker-desktop

Resumo: Se você está escolhendo uma ferramenta e seguindo em frente, instale o Docker Desktop e pare de ler. O resto da lista é para quando a licença ou a pegada de RAM o torna inadequado.

2. Podman Desktop — Melhor para um substituto sem privilégios e sem licença

Podman Desktop é a GUI patrocinada por Red Hat sobre Podman, e agora lida com devcontainer.json através da extensão VS Code Dev Containers, expondo um socket compatível com Docker. Você obtém um runtime OCI que funciona sem privilégios por padrão, sem daemon em segundo plano e uma licença Apache 2.0 permissiva.

Onde ela falha: A paridade do Compose é próxima, mas não idêntica à do Docker. A semântica de montagem de volume no macOS ainda fica para trás do Docker Desktop para workspaces muito grandes. Relatórios de bug em dev containers com camadas de features pesadas ainda aparecem ocasionalmente.

Preços:

Plataformas: Windows, macOS, Linux

Download: podman-desktop.io

Resumo: Podman Desktop é a troca direta quando a licença do Docker Desktop é um problema, e é a escolha correta quando sua equipe já executa Podman em servidores.

3. DevPod — Melhor para o mesmo contêiner em laptop, K8s e nuvem

DevPod por Loft Labs trata provedores como conectáveis. O mesmo devcontainer.json que você abre no Docker Desktop pode iniciar em um cluster Kubernetes, host SSH, nova instância EC2 ou Loft Vcluster, com o workspace sincronizado. Ele reutiliza internamente devcontainers/cli da Microsoft, então a conformidade de especificação é por construção, não por tradução.

Onde ele falha: O ecossistema de provedores é desigual. Provedores AWS, GCP, Azure e K8s de primeira parte são sólidos. Provedores comunitários variam. A interface de usuário do desktop é funcional em vez de polida.

Preços:

Plataformas: Windows, macOS, Linux, CLI

Download: devpod.sh

Resumo: DevPod é a escolha quando “dev container no meu laptop” precisa se tornar “dev container no cluster” sem reescrever o arquivo.

4. OrbStack — Melhor para Docker mais rápido no macOS

OrbStack é um substituto do Docker do zero para Macs Apple Silicon. O boot a frio leva alguns segundos, inatividade de RAM fica bem abaixo do Docker Desktop, e VirtioFS é o padrão para bind mounts, que é o maior ganho de performance único para dev containers que montam grandes monorepos. Ele também executa VMs Linux completas ao lado de contêineres para que você possa entrar em um shell sem um wrapper de contêiner.

Onde ele falha: Apenas macOS. Uso comercial é pago. A falta de builds para Windows e Linux significa que ele nunca pode ser a única ferramenta de dev container da sua equipe.

Preços:

Plataformas: macOS

Download: orbstack.dev

Resumo: OrbStack é a instalação correta primeiro em um Mac pessoal. Em um Mac de trabalho, fatore o nível comercial na decisão.

5. Rancher Desktop — Melhor para um K8s local real mais dev containers

Rancher Desktop por SUSE envia Docker ou containerd como runtime e k3s como um cluster Kubernetes real de um único nó. Essa combinação é incomum. Extensões de dev container o tratam como um socket compatível com Docker, e uma vez que seu fluxo de trabalho requer K8s local para testar manifestos, Rancher Desktop abrange ambas as superfícies em uma única instalação.

Onde ela falha: Mais partes móveis do que um runtime de contêiner simples. Primeiro lançamento é lento enquanto a VM Linux inicializa. Documentação sobre como alternar entre os runtimes Docker e containerd é escassa.

Preços:

Plataformas: Windows, macOS, Linux

Download: rancherdesktop.io

Resumo: Rancher Desktop é a escolha quando seu dia de trabalho alterna entre “reopen in container” e kubectl apply.

6. Colima — Melhor para Docker leve, sem GUI no macOS ou Linux

Colima é uma CLI fina sobre Lima que inicializa uma VM Linux com Docker ou containerd dentro. Sem ícone de bandeja, sem prompts de atualização, sem licença. Você executa colima start, aponta o CLI do Docker para seu socket, e a extensão Dev Containers do VS Code abre pastas em contêineres sem diferença perceptível do Docker Desktop.

Onde ela falha: Sem GUI. O suporte de Kubernetes existe, mas é o melhor esforço. O desempenho de compartilhamento de volume é utilizável, não o mais rápido da lista.

Preços:

Plataformas: macOS, Linux

Download: github.com/abiosoft/colima

Resumo: Colima é o substituto orientado para terminal do Docker Desktop em Macs. Escolha se você já vive no shell.

7. Distrobox — Melhor para desktops Linux containerizados

Distrobox envolve Podman ou Docker para executar distribuições Linux completas como contêineres fortemente integrados. Não é um runner de especificação de dev containers estrita, mas aborda o mesmo problema de outro ângulo: um ambiente Debian, Fedora ou Arch por projeto em qualquer host Linux, com acesso ao seu diretório pessoal e GPU. Combine com devcontainers/cli e você tem ambos os ambientes orientados por especificação e de forma livre por projeto.

Onde ele falha: Apenas Linux. Não é um drop-in para devcontainer.json por si só, então complementa em vez de substituir as outras opções.

Preços:

Plataformas: Linux

Download: distrobox.it

Resumo: Distrobox é a resposta em distros Linux imutáveis como Silverblue e Bazzite, onde pacotes do sistema são bloqueados e contêineres por projeto se tornam o fluxo de trabalho padrão.

8. GitHub Codespaces — Melhor para o mesmo dev container na nuvem

GitHub Codespaces pega seu devcontainer.json de repo e inicia uma VM hospedada que abre no navegador, VS Code ou JetBrains Gateway. Mudar de um dev container local para um Codespace é um movimento de um clique porque o arquivo já está lá. A vantagem é que um laptop de 16 GB pode gerenciar um Codespace de 32 GB, e um novo contratado está codificando em menos de dois minutos.

Onde ela falha: Custo de egresso e computação após as horas gratuitas se esgotarem. Latência para toques de tecla é bom em uma conexão sólida e doloroso no Wi-Fi do hotel. Algumas redes bloqueiam o protocolo de tunneling.

Preços:

Plataformas: Web, VS Code, JetBrains Gateway

Download: github.com/features/codespaces

Resumo: Codespaces é o fallback quando o laptop não é a máquina para executar o contêiner. Mesmo arquivo, host diferente.

Como escolher o correto

Perguntas Frequentes

O que é um dev container? Um ambiente de desenvolvimento com escopo de pasta definido por um arquivo .devcontainer/devcontainer.json que fixa o runtime, pacotes do sistema e extensões de editor. Abra a pasta em um editor compatível e a ferramenta reconcilia o contêiner a partir desse arquivo.

Preciso do Docker Desktop para usar dev containers? Não. O CLI de dev containers funciona com qualquer socket compatível com Docker. Podman, Colima, Rancher Desktop e OrbStack todos expõem um.

Posso usar dev containers sem VS Code? Sim. devcontainers/cli lê o mesmo arquivo e abre um shell no contêiner. JetBrains Gateway também suporta a especificação.

Há um custo de licença para dev containers em si? Não. A especificação e o CLI de referência são código aberto sob licença MIT. O custo vem do runtime e qualquer execução hospedada.

Como um dev container se compara a um ambiente virtual? Um venv ou pasta node_modules fixa o ecossistema de linguagem. Um dev container também fixa o sistema operacional, o que corrige o bug “funciona na minha máquina” entre colegas de equipe.

Dev containers podem usar GPU? Sim, em hosts Linux e no Windows com WSL2 e passthrough CUDA. Adicione as features apropriadas e bloco hostRequirements ao devcontainer.json e exponha o dispositivo GPU ao contêiner.