Important
Both socktainer and Apple container are still under heavy development!
Note
socktainer maintains to be compatible with Docker Engine API v1.51.
- Socktainer π’
Socktainer is a CLI/daemon that exposes a Docker-compatible REST API on top of Apple's containerization libraries ππ¦.
It allows common Docker clients (like the Docker CLI) to interact with local containers on macOS using the Docker API surface π³π».
Podman Desktop Apple Container extension uses socktainer to visualize Apple containers/images in Podman Desktop.
Get started with socktainer CLI in just a few commands:
./socktainer
FolderWatcher] Started watching $HOME/Library/Application Support/com.apple.container
[ NOTICE ] Server started on http+unix: $HOME/.socktainer/container.sock
...Export the socket path as DOCKER_HOST:
export DOCKER_HOST=unix://$HOME/.socktainer/container.sock
docker ps # List running containers
docker ps -a # List all containers
docker images # List available imagesOr inline without exporting:
DOCKER_HOST=unix://$HOME/.socktainer/container.sock docker ps
DOCKER_HOST=unix://$HOME/.socktainer/container.sock docker images- Built on Appleβs Container Framework π
- Provides Docker REST API compatibility π (partial)
- Listens on a Unix domain socket
$HOME/.socktainer/container.sock - Supports container lifecycle operations: inspect, stop, remove π οΈ
- Supports image listing, pulling, deletion, logs, health checks. Exec without interactive mode π
- Broadcasts container events for client liveness monitoring π‘
- macOS 26 (Tahoe) on Apple Silicon (arm64) Appleβs container APIs only work on arm64 Macs ππ»
- Apple Container 0.6.0
socktainer is shipped via a homebrew tap:
brew tap socktainer/tapInstall the official release:
brew install socktainerInstall development release:
brew install socktainer-nextDownload from socktainer releases page the zip or binary. Ensure the binary has execute permissions (+x) before running it.
Refer to Quick Start above for immediate usage examples.
- Swift 6.2 (requirements from Apple container)
- Xcode 26 (select the correct toolchain if installed in a custom location)
sudo xcode-select --switch /Applications/Xcode_26.0.0.app/Contents/Developer
# or
sudo xcode-select -s /Applications/Xcode-26.app/Contents/Developer- Build the project:
make- (Optional) Format the code:
make fmt- Run the debug binary:
.build/arm64-apple-macosx/debug/socktainerThe server will create the socket at
$HOME/.socktainer/container.sock.
Run unit tests:
make testWe welcome contributions!
- Fork the repository and create a feature branch πΏ
- Open a PR against
mainwith a clear description π - Add or update tests for new behavior (see
Tests/socktainerTests) βοΈ - Keep changes small and focused. Document API or behavioral changes in the PR description π
- Code organization under
Sources/socktainer/:Routes/β Route handlers π£οΈClients/β Client integrations πUtilities/β Helper utilities π§°
- Document any public API or CLI changes in this README π
- Intended for local development and experimentation π
- Running third-party container workloads carries inherent risks. Review sandboxing and container configurations π
- Docker API compatibility is partial, focused on commonly used endpoints. See
Sources/socktainer/Routes/for implemented routes - Private registry auth currently depends on Apple
containerbehavior. If login succeeds but private pulls/builds still fail, a manual workaround may be required. See apple/container#816 comment 3534438608 and comment 3503618765.
Join the Socktainer community to ask questions, share ideas, or get help:
- Discord: discord.gg/Pw9VWKcUEt β chat in real time with contributors and users
- GitHub Discussions: socktainer/discussions β ask questions or propose features
- GitHub Issues: socktainer/issues β report bugs or request features
See the LICENSE file in the repository root.
- Built using Apple containerization libraries π
- Enables Docker CLI and other Docker clients to interact with local macOS containers π³π»