I decided to create a CI/CD pipeline for our startup which uses Gitlab. My first goal is to build our C++ application using the pipeline. So I started looking at Gitlabs's CI/CD pipelines and how to setup one and… got lost. Decided to get down the rabbit hole and got even more lost because somehow every tutorial assumes that I'm an experienced DevOps engineer who knows Jenkins, Docker, Kubernetes, Azure, .yml files etc. and I don't. As in I've heard of them but don't know anything about them. This makes picking anything nearly impossible or random.
So my question is: What do these 3 (Jenkins, Docker, Kubernetes) do? What are they used for? When would you combine them? Can you explain it without using fancy DevOps terminology but rather simple (inexperienced) software engineering terms?