If you're saying you've installed a VM host machine, and now you're running VM guests on it, you should install all your services on the guests.
So if you've installed AD Domain Services on the VM host, remove it and install it on one of the guests. AD and DNS must co-exist. You may have DHCP on there as well, although this is really only recommended in a small environment.
SQL and file services should also generally be on different servers. However, again, if the organisation is very small and you're constrained with operating system license costs, you might consider SQL and file services on the same machine. Basically, I'm assuming you've only purchased a Windows Server Standard license, which allows you to deploy 2 VMs.
In that case, you should set SQL Max Server Memory to at least 4GB less than the physical memory allocated to the guest operating system. In theory, SQL does dynamic memory management by default, but in practice, it can take it a little time to free up memory for the OS if you're wanting to do something with a lot of files.
Partition the guest OS disk for SQL:
- Windows OS (ensure there's plenty of space for updates - no less than 60GB)
- page file (this does NOT have to be 2 x RAM or 1.5 x RAM or any other multiple of the memory size)
- a partition for the SQL instance and databases
- perhaps another partition for SQL backups
- a partition for the file shares
If it were an enterprise situation, you'd normally have partitions for SQL transaction logs, but it's probably overkill in this instance.