There are not really any fundamental alternatives to Docker:
Virtualization has too much overhead.
Processes are not sufficiently isolated. The required libraries and runtime environments for all microservices must be installed in the operating system. This can be difficult because each process occupies one port, and therefore the allocation of ports must be coordinated.
Other container solutions such as rkt are far less common.