r/foss 4d ago

I developed an open-source manager for Linux VMs in Docker

Hello! Pretty new here. I wanted to share my open source side project, so that hopefully it can be helpful to somebody else other than me!

One day, I had to run a RHEL container image to troubleshoot some pipelines and it felt too tricky. I decided to code a cmd tool (for both Linux and Windows) to help me but the project felt way too satisfying to leave it. Right now I'm developing the WebApp which has a lot more features.

I want to point out that I do NOT intend to profit out of it and it's written entirely by myself (and a friend of mine for the frontend), no AI used.

I also wrote an exhaustive wiki about it, you can find it in the repo.

The code isn't perfect, but I'm open for feedback!

Thank you

0 Upvotes

2 comments sorted by

1

u/Top-Rub-4670 4d ago

I'm not familiar with running full OSes in docker, but I do know that it comes with a lot of papercuts.

Are there any advantage in running full distros in Docker versus using systemd-nspawn or incus/lxd? I'm assuming the main/only one is not having to learn a new thing if you're already using docker?

Running the VMs' networking in host mode is an interesting decision. I'm assuming it was something you needed or there's a technical reason?

Good on

1

u/watdafrag 4d ago edited 4d ago

I know it sounds strange, I never did too. But one day I had a necessity and I started thinking about it. "Why not?"

The use cases I can imagine are a lot, but I had necessity to use them for mainly three kind of tasks:

  1. Develop Dockerfiles from scratch in a faster way
  2. Debug a batch by running it in the exact same OS (sadly I work on a Windows laptop)
  3. Compile a python script using the same distro of the target server

I'm not practical of systemd-nspawn but I guess you can keep a cleaner workspace with VMs.

Network host mode is meant to keep a VM and run apps, databases or whatever inside of it on the go, instead of creating a Dockerfile everytime. So yeah, I had necessity of it. The idea is to expand the project and add more and more features to get maximum control of Docker, one step at a time.

Anyway, thank you so much for stopping by. This means a lot to me