Apple finally released native support for containers, but it is missing a compatible GUI. I built lazycontainer, a terminal UI to make it easy to manage Apple containers. It is written in Go, and uses bubbletea🧋
https://github.com/andreybleme/lazycontainer
First impression
I have been trying the native apple containers on my Mac for the last weeks, and it looks fast. Docker is one of the few things that makes my M1 feel slow, so I've been experimenting with replacing it with apple containers on my local environment for simple stuff like Postgres and Redis.
It still has significant limitations in terms of networking and memory. It does not support routing traffic from container-managed applications to host applications. To workaround this, we need a port forwarding tool like socat
or netcat
to establish a TCP connection between the host and the container and redirect the traffic. Not cool.
socat TCP-LISTEN:8000,fork,bind=192.168.64.1 TCP:127.0.0.1:8000
There is no CLI support for managing volumes. Even though it allows running a container with a volume container run --volume
, we can't list or remove mounted volumes as we are used to doing with Docker. Same for networks.
The first release also didn't come with support for compose. We are used to relying on docker_compose.yaml files to provision multiple containers, but that is not supported for now. This is one of the most requested features, and would definitely drive more adoption if added in the next release.
It is great to see native containers come to Mac, but lima and colima already enable decent performance for containers running on Mac, and most importantly, being Docker compatible. It is hard to see this announcement as groundbreaking if they don't provide support for most things we are used to having in the Docker ecosystem.
In the meantime, the open source community is hacking to make it compatible with Docker-like tools. Let me know what your thoughts are on it! Are you using it or planning to?
Top comments (0)