Is it possible to deboostrap in gitlab CI?


I have a group of script which will:

  1. Create a qemu-img.
  2. Install deboostrap in the image.
  3. Mount the image and launch some setup (install some software) in it.
  4. Install docker in the image.
  5. Umount the image.

I would like to know if it is possible to do that with the CI free plan?
I did not understand where gitlab runners run (on my computer on our computers?) and if I need them.
I also heard about dind (docker-in-docker) but I do not know if I need it.

Thank you a lot!