Sobre o projeto

container é uma ferramenta de linha de comando da Apple para criar e executar contêineres Linux como máquinas virtuais leves em um Mac. Escrita em Swift e otimizada para Apple silicon. A ferramenta consome e produz imagens de contêiner compatíveis com OCI, portanto as imagens podem ser obtidas e enviadas para qualquer registro de contêiner padrão e executadas em outros aplicativos compatíveis com OCI. Internamente, ela depende do pacote Swift Containerization para gerenciamento de baixo nível de contêineres, imagens e processos. Requisitos e suporte de plataforma: é necessário um Mac com Apple silicon, e a ferramenta é suportada no macOS 26, aproveitando os recursos de virtualização e rede dessa versão. Versões mais antigas do macOS não são suportadas. A instalação é feita por meio de um pacote instalador assinado da página de releases do GitHub, que coloca os arquivos em /usr/local. O serviço do sistema é iniciado com `container system start`. O primeiro contêiner pode ser executado com `container run --rm alpine echo hello`, que obtém a imagem alpine, executa-a em uma VM Linux leve, imprime a saída e remove o contêiner ao sair. Atualizações e downgrades são tratados reinstalando o pacote assinado ou usando o script update-container.sh instalado; o serviço existente deve ser interrompido primeiro. Para fazer downgrade, é necessário desinstalar a versão atual, opcionalmente mantendo os dados do usuário com a flag -k ou removendo-os com -d. A desinstalação usa o uninstall-container.sh com as mesmas opções de retenção de dados. A documentação cobre um tutorial guiado que cria, executa e publica uma imagem simples de servidor web, guias de como fazer, uma visão geral técnica, uma referência completa de comandos, instruções de compilação e documentação de API gerada. Contribuições são bem-vindas por meio do guia de contribuição do projeto. O projeto está em desenvolvimento ativo, e suas versões de lançamento são versões de produto, não versões semânticas. A compatibilidade da CLI é geralmente preservada dentro de um lançamento principal, embora mudanças disruptivas ocasionais possam ser necessárias; recursos marcados como experimentais, como o subcomando k8s, podem mudar sem garantias de compatibilidade retroativa. A API XPC do container-apiserver preserva compatibilidade direta e reversa dentro de uma versão principal, enquanto outros auxiliares XPC não públicos não garantem compatibilidade entre versões. Os dados de aplicativo fornecem apenas compatibilidade direta, garantida dentro de uma versão principal, e atualizar para uma versão principal mais recente pode exigir um caminho de atualização específico.