Podman and Minikube - A quickstart guide
Follow the steps to setup podman as Docker replacement with Minikube on macOS.
Prerequisites
- macOS with Homebrew
- 8GB+ RAM, 20GB+ disk space
Setup
Install Podman
brew install podman podman-desktop
podman machine init
podman machine start
Add Corporate Certificates
podman machine ssh
# Add any corp certificates inside the machine if needed
Create Docker Alias
sudo tee -a /usr/local/bin/docker <<EOF
#!/bin/bash
exec podman "\$@"
EOF
sudo chmod +x /usr/local/bin/docker
VS Code Configuration
If you use devcontainers a lot and want to use podman instead of docker.
{
"dev.containers.dockerPath": "podman"
}
Install Minikube
brew install minikube
Start Cluster
# Multi-node cluster
minikube start --driver=podman --embed-certs --nodes=3 --cpus=2 --memory=2048
# With CRI-O runtime
minikube start --driver=podman --embed-certs --nodes=3 --cpus=2 \
--memory=2048 --container-runtime=cri-o -p test-cluster
Enable Registry
minikube addons enable registry
Test Setup
Deploy Application
# Deploy nginx (ARM images for Apple Silicon)
kubectl create deployment hello-minikube --image=docker.io/arm64v8/nginx:latest
kubectl expose deployment hello-minikube --type=NodePort --port=80
Access Application
# Access via Minikube service
minikube service hello-minikube
# Or with specific profile
minikube service hello-minikube -p test-cluster
Commands
Podman
podman machine list
podman machine stop/start
podman ps
podman images
Minikube
minikube status
minikube stop/start/delete
minikube node list
minikube service list
minikube tunnel
minikube dashboard
Kubernetes
kubectl get nodes
kubectl get pods -A
kubectl cluster-info
Tips
- Use
minikube profilefor multiple clusters - Enable
minikube tunnelfor LoadBalancer services - Use ARM images for Apple Silicon
- Check
minikube addons listfor features - Use
podman machine sshto debug