## 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][acl_guide] for more information on how to
protect Nomad cluster operations.

## Configuration

Refer to the [plugin block documentation][plugin] for examples on how to use the
plugin block in Nomad's client configuration. Review the [Docker driver's client
requirements section][docker_plugin] 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](/nomad/docs/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](/nomad/plugins/drivers/community/).

## 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][plugin_guide] for details.


[plugin]: /nomad/docs/configuration/plugin
[docker_plugin]: /nomad/docs/drivers/docker#client-requirements
[plugin_guide]: /nomad/docs/concepts/plugins/task-drivers
[acl_guide]: /nomad/tutorials/access-control
[Docker]: /nomad/docs/drivers/docker
[Exec2]: /nomad/plugins/drivers/exec2
[Isolated Fork/Exec]: /nomad/docs/drivers/exec
[Podman]: /nomad/plugins/drivers/podman
[Java]: /nomad/docs/drivers/java
[Virt]: /nomad/plugins/drivers/virt
[QEMU]: /nomad/docs/drivers/qemu
[Raw Fork/Exec]: /nomad/docs/drivers/raw_exec
