A computing device for configuring virtual machines, the computing device comprising a computer readable memory and a processor, wherein the computer readable memory comprises computer code and a plurality of virtual image files, the virtual image files including a first virtual image file and a second virtual image file, the computer code comprising: a plurality of virtual machine modules encapsulating logic to read from and write to application and operating system files included in the corresponding virtual image files; an agent configured to execute within a booted virtual machine; an application programming interface, API, having a getter method and/or a setter method and a notify method in communication with the agent, executable with the processor to enable translation of configuration commands into invocations of methods included in the API; and a container module executable with the processor to: programmatically inspect the API of virtual machine modules to determine what configuration properties of an application are supported by the virtual machine modules; load and direct execution of the plurality of virtual machine modules to modify a supported configuration property of an application translated by the API, based on a value of a configuration property of an operating system, wherein the application is stored on the first virtual image file, and the operating system is stored on the second virtual image file; and if the container module executes a configuration command to set a configuration property then determine if a corresponding virtual machine is booted and if booted then invoke the notify method within the API to set the configuration property of the application within the booted virtual machine; wherein the plurality of virtual machine modules includes a first virtual machine module and a second virtual machine module, the first virtual machine module is executable with the processor to modify the first virtual image file to modify the supported configuration property of the application, and the second virtual machine module is executable with the processor to read the configuration property of the operating system from the second virtual image file, and wherein each one of the virtual image files is bootable as a different virtual machine of a plurality of virtual machines configured to emulate hardware, and further wherein at least one of the configuration commands of the container module translated by the API is configured to direct execution of the first virtual machine module to modify the first virtual image file. a plurality of virtual machine modules encapsulating logic to read from and write to application and operating system files included in the corresponding virtual image files; an agent configured to execute within a booted virtual machine; an application programming interface, API, having a getter method and/or a setter method and a notify method in communication with the agent, executable with the processor to enable translation of configuration commands into invocations of methods included in the API; and a container module executable with the processor to: programmatically inspect the API of virtual machine modules to determine what configuration properties of an application are supported by the virtual machine modules; load and direct execution of the plurality of virtual machine modules to modify a supported configuration property of an application translated by the API, based on a value of a configuration property of an operating system, wherein the application is stored on the first virtual image file, and the operating system is stored on the second virtual image file; and if the container module executes a configuration command to set a configuration property then determine if a corresponding virtual machine is booted and if booted then invoke the notify method within the API to set the configuration property of the application within the booted virtual machine; programmatically inspect the API of virtual machine modules to determine what configuration properties of an application are supported by the virtual machine modules; load and direct execution of the plurality of virtual machine modules to modify a supported configuration property of an application translated by the API, based on a value of a configuration property of an operating system, wherein the application is stored on the first virtual image file, and the operating system is stored on the second virtual image file; and if the container module executes a configuration command to set a configuration property then determine if a corresponding virtual machine is booted and if booted then invoke the notify method within the API to set the configuration property of the application within the booted virtual machine; wherein the plurality of virtual machine modules includes a first virtual machine module and a second virtual machine module, the first virtual machine module is executable with the processor to modify the first virtual image file to modify the supported configuration property of the application, and the second virtual machine module is executable with the processor to read the configuration property of the operating system from the second virtual image file, and wherein each one of the virtual image files is bootable as a different virtual machine of a plurality of virtual machines configured to emulate hardware, and further wherein at least one of the configuration commands of the container module translated by the API is configured to direct execution of the first virtual machine module to modify the first virtual image file.