A method performed in a computing system having a source device interconnected to a destination device by a computer network, the method comprising: receiving, at the destination device, a request to migrate a source container currently executing on the source device to the destination device, the source container including a software package having a software application in a filesystem sufficiently complete for execution of the software application in an operating system by a processor of the source device to provide a display output of the software application; and in response to the received request from the source device, at the destination device, starting a virtual machine having an operating system that is compatible with that of the source device; instantiating, in the started virtual machine, a destination container using a copy of an image and a memory snapshot of the source container on the source device; and upon completion of instantiating the destination container at the destination device: continuing execution of the software application in the destination container; and transmitting, via the computer network, a remote display output of the software application from the destination container to the source device to be surfaced on the source device. receiving, at the destination device, a request to migrate a source container currently executing on the source device to the destination device, the source container including a software package having a software application in a filesystem sufficiently complete for execution of the software application in an operating system by a processor of the source device to provide a display output of the software application; and in response to the received request from the source device, at the destination device, starting a virtual machine having an operating system that is compatible with that of the source device; instantiating, in the started virtual machine, a destination container using a copy of an image and a memory snapshot of the source container on the source device; and upon completion of instantiating the destination container at the destination device: continuing execution of the software application in the destination container; and transmitting, via the computer network, a remote display output of the software application from the destination container to the source device to be surfaced on the source device. starting a virtual machine having an operating system that is compatible with that of the source device; instantiating, in the started virtual machine, a destination container using a copy of an image and a memory snapshot of the source container on the source device; and upon completion of instantiating the destination container at the destination device: continuing execution of the software application in the destination container; and transmitting, via the computer network, a remote display output of the software application from the destination container to the source device to be surfaced on the source device. continuing execution of the software application in the destination container; and transmitting, via the computer network, a remote display output of the software application from the destination container to the source device to be surfaced on the source device.