I understood vagrant as the virtual box definition language(correct me , if I am wrong)

My initial query is I want to create vagrant box for cent os 7 <http://www.centos.org> which is not already on the list <http://www.vagrantbox.es>

How can I do that ?

Can I run a vagrant box created in virtual box as headless (without GUI) ?

My Goal was to create a virtual boxes for production environments for testing purposes (which includes creating a virtual box for redhat, suse and centos).

After some initial research in vagrant, I tried to solve the previous problem by creating vagrant box and use the same settings for different operating systems which will allow me to create my test production systems on the fly. 

Can someone correct me if I am thinking in a right way? Is this is the way vagrant used for ?

I realised that <http://www.vagrantbox.es> list does not contain the all the latest versions of linux distros. Can I create my virtual machine from scratch using vagrant ? If so can, some one tell me how to do it?

I ruled out docker as I need a virtual machine instead of virtual environment.