This document provides information on using Podman as an alternative to Docker for the Tailscale examples in this repository.
After testing, we've confirmed that Podman is fully compatible with all the Tailscale Docker examples in this repository. Podman 5.4.1+ can be used as a drop-in replacement for Docker with minimal to no modifications.
- Docker Compose Files: All Docker Compose files work with
podman composewithout modification. - Network Features: Podman supports all network features required by Tailscale:
net_admincapability/dev/net/tundevice access- Shared network namespaces via
network_mode: service:container_name
- Volumes & Environment Variables: All volume mounts and environment variables work as expected.
- Container Orchestration: Multi-container setups work correctly with proper dependency management.
To use these examples with Podman:
-
Replace
dockerwithpodmanin commands:podman run ... podman pull ... podman exec ... -
Replace
docker composewithpodman compose:podman compose up -d podman compose down podman compose logs -
All other Docker CLI commands have direct Podman equivalents with the same syntax.
- Podman's rootless mode can be used with these examples for enhanced security.
- The
podman composecommand may display a message about using an external Docker Compose provider, which is normal and can be ignored. - macOS users will need to install Podman Desktop or use Podman Machine to create a Linux VM for running containers.
- If you see a warning about the
versionattribute being obsolete in compose files, this can be safely ignored.
- Podman's network implementation is slightly different than Docker's, but for these examples, the functionality remains the same.
- Podman uses a different default filesystem driver, but this doesn't affect these examples.
- Some advanced Docker-specific features may not be available in Podman, but none of these are used in the examples in this repository.