1. A computer-implemented method, comprising: receiving a task definition, the task definition indicating at least: a location at which a software image is located; and information usable to determine an amount of a resource to allocate to a software container for the software images, the software container being a user space instance that runs in isolation from other software containers running on a same virtual machine instance; determining, based at least in part on a placement scheme and available resources in a set of virtual machine instances, a virtual machine instance from the set of virtual machine instances in which to launch the software container at least by parsing, via a scheduler application, the task definition for information that indicates an affinity or anti-affinity for certain types of virtual machine instances; and causing the software image to be obtained from the location indicated by the task definition and launched in the software container within the virtual machine instance, wherein the software container is allocated the amount of the resource.