Se você é usuário da Apple, provavelmente já ouviu falar do próximo recurso da Apple Containerizationdurante a WWDC 2025. Resumo rápido:
Containeré uma ferramenta CLI que funciona com Containerization . É com ela que os usuários finais interagem .Containerizationlida com a criação dos contêineres, que se comunicam comVirtualization.framework.Virtualization.frameworké a API do hipervisor (alto nível) e cria uma nova VM por contêiner viaHypervisor.framework.Hypervisor.frameworké a API do hipervisor de baixo nível, que usa o kernel do macOS (o hipervisor) .
É semelhante ao Subsistema Windows para Linux 2 (WSL) da Microsoft , onde uma máquina virtual (VM) muito pequena e leve é iniciada em segundo plano, permitindo que um kernel Linux seja usado em um host não Linux (o WSL2 usa Hyper-V) . Não confunda com o WSL1, que era mais parecido com o WINE!
Ele será lançado publicamente para o próximo grande lançamento do sistema operacional, macOS “Tahoe” 26, e também para o macOS “Sequoia” 15.
Containerizationsuporta contêineres que são compatíveis com “Open Container Initiative (OCI)”, felizmente nossa imagem Kali é !
Configurar
Se a primeira coisa que vemos ao tentar correr containeré:
~ % container
zsh: command not found: container
~ %
…Precisamos instalá-lo.
Fazendo uma verificação rápida para garantir que nosso sistema é compatível:
~ % sw_vers -productVersion
15.5
~ %
~ % uname -m
arm64
~ %
Estamos usando o macOS 15.5 em um dispositivo da série Apple Silicon (também conhecido como arm64).
Estamos prontos para ir!
Se o Homebrew estiver instalado:
~ % brew install --cask container
==> Downloading https://github.com/apple/container/releases/download/0.2.0/container-0.2.0-installer-signed.pkg
==> Downloading from https://release-assets.githubusercontent.com/github-production-release-asset/993475914/c5fb6a42-f282-4dd7-95c2-af9b142f0ed1?sp=r&sv=2018-11-09&sr=b&spr=https&se=2025-07-17T14%3A06%3A32Z&r
######################################################################################################################################################################################################### 100.0%
==> Installing Cask container
==> Running installer for container with sudo; the password may be necessary.
Password:
installer: Package name is container-0.2.0-installer-signed
installer: Upgrading at base path /
installer: The upgrade was successful.
🍺 container was successfully installed!
~ %
Caso contrário, podemos obter manualmente o arquivo de configuração (assinado) em github.com/apple/container . No momento em que este artigo foi escrito, ele estava em container-0.2.0-installer-signed.pkg.
Agora, quando tentamos executá-lo:
~ % container
OVERVIEW: A container platform for macOS
USAGE: container [--debug] <subcommand>
OPTIONS:
--debug Enable debug output [environment: CONTAINER_DEBUG]
--version Show the version.
-h, --help Show help information.
CONTAINER SUBCOMMANDS:
create Create a new container
delete, rm Delete one or more containers
exec Run a new command in a running container
inspect Display information about one or more containers
kill Kill one or more running containers
list, ls List containers
logs Fetch container stdio or boot logs
run Run a container
start Start a container
stop Stop one or more running containers
IMAGE SUBCOMMANDS:
build Build an image from a Dockerfile
images, image, i Manage images
registry, r Manage registry configurations
OTHER SUBCOMMANDS:
builder Manage an image builder instance
system, s Manage system components
~ %
…mas ainda não chegamos lá completamente!
Quando tentamos containerinteragir com Containerization, podemos obter:
~ % container ls
Error: interrupted: "internalError: "failed to list containers" (cause: "interrupted: "XPC connection error: Connection invalid"")
Ensure container system service has been started with `container system start`."
~ %
Podemos resolver isso iniciando o serviço em segundo plano:
~ % container system start
Verifying apiserver is running...
Installing base container filesystem...
No default kernel configured.
Install the recommended default kernel from [https://github.com/kata-containers/kata-containers/releases/download/3.17.0/kata-static-3.17.0-arm64.tar.xz]? [Y/n]: y
Installing kernel...
~ %
Agora vamos para as corridas!
Contêineres em execução
Assim como o Docker e o Podman , podemos executar nossos contêineres conforme esperado:
~ % container run --rm -i -t kalilinux/kali-rolling
┌──(root㉿9ff4685f-76e1-42fa-86ba-f12e76c79843)-[/]
└─# id
uid=0(root) gid=0(root) groups=0(root)
Na primeira execução, containerserá necessário baixar a imagem do contêiner. O registro de contêiner padrão atualmente é o DockerHub (no qual o Kali está instalado) .
Podemos fazer os mesmos recursos do Docker/Podman como você esperaria, como compartilhar um diretório:
~ % container run --remove --interactive --tty --volume $(pwd):/mnt --workdir /mnt docker.io/kalilinux/kali-rolling:latest
┌──(root㉿4be77ff5-bd57-4076-8bf0-8e51caff047e)-[/mnt]
└─# uname -a
Linux 4be77ff5-bd57-4076-8bf0-8e51caff047e 6.12.28 #1 SMP Tue May 20 15:19:05 UTC 2025 aarch64 GNU/Linux
Pseudônimo
Quando tudo estiver funcionando conforme o esperado, podemos criar um alias rápido para evitar ter que digitar novamente o comando completo toda vez:
~ % alias container-shell='container run --remove --interactive --tty --entrypoint=/bin/bash --volume $(pwd):/mnt --name "$(hostname -s)-$(mktemp -u XXXXXX)" --workdir /mnt'
~ %
~ % echo "alias container-shell='container run --remove --interactive --tty --entrypoint=/bin/bash --volume $(pwd):/mnt --name "$(hostname -s)-$(mktemp -u XXXXXX)" --workdir /mnt'" >> ~/.zshrc
~ %
~ % container-shell kalilinux/kali-rolling:latest
┌──(root㉿mba22-vB9af6)-[/mnt]
└─#
Solução de problemas
Atualmente, existem algumas limitações conhecidas da conteinerização, especialmente no macOS "Sequoia" 15 , como o acesso à rede do contêiner não obter um endereço IP ou a ausência de acesso à rede . Recomendamos ler e seguir as recomendações da Apple caso você encontre esses problemas.
E assim, temos uma maneira rápida de executar contêineres Kali no macOS. Isso faz parte do nosso compromisso contínuo com o " Kali Everywhere ", onde colocamos as ferramentas que você precisa em tantos lugares quanto possível e de fácil utilização. Há muitas maneiras diferentes de executar o Kali; não deixe de conferir nossa página sobre como obter o Kali para encontrar a que melhor se adapta às suas necessidades.


Comentários
Postar um comentário