Nomad task drivers
Nomad's bundled task drivers integrate with the host OS to run job tasks in isolation. Review conceptual, installation, usage, and reference information for the Docker, Isolated Fork/Exec, Java, QEMU, and Raw Fork/Exec task drivers.
Introduction
Nomad clients use task drivers to execute a task and provide resource isolation. Extensible task drivers provide Nomad the flexibility to support a broad set of workloads across all major operating systems.
Task driver resource isolation provides a degree of separation for Nomad's client CPU, memory, and storage between tasks. Resource isolation effectiveness depends upon individual task driver implementations and underlying client operating systems. Task drivers include various security-related controls, but do not use the Nomad client-to-task interface as a security boundary. Refer to the access control guide for more information on how to protect Nomad cluster operations.
Configuration
Refer to the plugin block documentation for examples on how to use the plugin block in Nomad's client configuration. Review the Docker driver's client requirements section for a detailed example.
Nomad task drivers
The Nomad binary contains several bundled task drivers. We also support additional task driver plugins that you may install separately.
Bundled with Nomad | Plugins |
---|---|
Docker | Exec2 |
Isolated Fork/Exec | Podman |
Java | Virt |
QEMU | |
Raw Fork/Exec |
Each task driver page documents the configuration available in a job specification, the environments you can use the task driver in, and the resource isolation mechanisms available.
Community task drivers
You may also use community-supported task driver plugins.
Create task drivers
Nomad's task driver architecture is pluggable, which gives you the flexibility to create your own drivers without having to recompile Nomad. Refer to the plugin authoring guide for details.