I recently encountered an interview exercise involving container logs and being asked to reconstruct a Docker Compose setup from them. It made me realize that although I have practical Docker experience from running Nextcloud on an old computer, I have not deliberately tested my troubleshooting and design skills in realistic scenarios. What are some free, hands-on ways to practice DevOps tools—especially Docker, Kubernetes, and Terraform—and build confidence beyond simply deploying an application?
3 Answers
Do not feel that you have wasted your time. Many people working in DevOps rarely create container images from scratch; they maintain existing images, deployment configuration, pipelines, and infrastructure. Your Nextcloud setup is still useful experience. To practice systematically, choose a small application, containerize it, run it locally, deploy it to kind or k3s, add a Helm chart, and then automate the supporting resources with Terraform. Keep the whole project in version control and recreate it from an empty machine several times. That gives you a practical, free lab and exposes the gaps in your knowledge naturally.
Logs can help you infer what an application did, but they generally cannot reproduce a Dockerfile or Compose file accurately. Build logs may reveal commands, image names, and dependency problems, while runtime logs usually only describe the packaged application. There are many possible image layers, build options, files, and settings that would produce similar output. Treat that interview exercise as a puzzle about interpreting evidence, not as a normal real-world task.
In a carefully designed exercise, you could reconstruct a reasonable approximation if the logs are detailed enough. In practice, though, you would not be able to recover the original setup with high fidelity from logs alone.
A good free practice setup is to build your own images with Docker or Podman, then run a lightweight Kubernetes cluster using kind or k3s. Deploy your images with Helm and practice deliberately breaking things: bad environment variables, missing ports, incorrect mounts, failed health checks, and image tag mistakes. That will teach you much more than following a perfectly working tutorial. You can add Terraform later once you have a specific infrastructure problem to manage; GitOps tools such as Argo can also be useful for learning deployment workflows.

A home lab with spare hardware can be especially helpful, but you do not need an elaborate setup. A single local Kubernetes cluster and a few intentionally broken deployments are enough to learn a lot.