If you are a developer using an Apple Silicon Mac, you might have noticed a lot of buzz surrounding Apple's new open-source container tool, container. Since its release, it has become a go-to for those tired of Docker Desktop's resource-heavy overhead and update interruptions. Written in Swift and optimized for Apple Silicon, this tool takes a fundamentally different approach to virtualization.
Why the Change in Architecture Matters
Unlike Docker Desktop, which runs all your containers inside a single, pre-allocated Linux VM, Apple's container tool creates a dedicated, lightweight VM for every individual container. Leveraging the macOS Virtualization framework, these VMs spin up in under a second and consume near-zero memory when idle. This means you do not have to worry about sizing a "global" VM before you even start working.
Getting Started
Installing the tool is straightforward. Download the signed .pkg from their GitHub releases, run the installer, and initialize the daemon:
container system start
Once the Linux kernel is installed (a one-time 30-second process), you can pull and run images using standard CLI commands that feel very familiar if you are used to Docker:
# Run a simple nginx container
container run -d --name web -p 8080:80/tcp nginx:latest
Networking and "Container Machines"
One of the standout features is how networking is handled. Each container gets its own IP address, and Apple even includes an embedded DNS service. If you name your container web, you can simply access it at web.dev.local from your Mac. For cross-platform development, the container machine feature allows for persistent Linux environments that mirror your macOS working directory.
The Trade-offs
While the per-container VM model is fantastic for solo development, it is not without its "rough edges." Currently, there is no support for docker-compose, which is a major blocker for complex projects requiring multi-service stacks. Additionally, developers performing heavy I/O operations (like npm install in large projects) may notice slight latency compared to Docker Desktop.
Sharing Projects via Pinggy
If you need to quickly expose your local project for a demo or webhook testing, this tool pairs perfectly with Pinggy. You can expose your containerized service to a secure public URL with a simple SSH command, bypassing the need for complex configuration:
ssh -p 443 -R0:localhost:8080 free.pinggy.io
Final Thoughts
If you primarily work on single services and want a more lightweight, native experience on your M-series Mac, container is absolutely worth trying. For those who rely heavily on complex Docker Compose setups, it is better to wait for upcoming updates, but the future of this tool looks promising.
Read more about this from Blog

Top comments (0)