Conclusion: Docker-in-Docker does not work on RunPod. We cannot start docker daemon inside of our container and then use it to pull in and run other images. Runpod's containerized environment does not grant the privileges or kernel access required for Docker-in-Docker to set up its own network interfaces and iptables rules, causing the Docker daemon to fail.
Conclusion: Runpodctl is useless. DO NOT USE IT. Use the Golang, Python, Javascript, or GraphQL API instead.
Runpodctl has no real documentation anywhere.
Note that you must use templateId, and not the template's name. I don't think template does anything; I think it's ignored tbh.
There is no way to create or get templates.
Note that gpuType is required, even if we would prefer a CPU. There are probably nanmes for CPU-instances, but I cannot find them. There is no programmatic way to get al ist of GPU types.
Name does not need to be unique (every pod is given a unique ID, the name is just cosmetic).
imageName is required, even if you have a templateId specified; the templateId specifies an image, so you would think that you wouldn't also need an imageName, but you do. (sigh)
imageName only works for public docker repos; there doesn't appear to be any way of providing hub credentials for private repos via the CLI. Annoyingly enough the runpodctl will not return an error, even if the image cannot be found.
runpodctl create pod \
--name "my-docker-test6" \
--templateId "nl7xnd42do" \
--gpuType "NVIDIA GeForce RTX 3090" \
--imageName "paulfidika/my-docker-test:latest"