2015-09-12 00:01:02 +00:00
|
|
|
---
|
|
|
|
layout: "docs"
|
2015-09-20 22:31:33 +00:00
|
|
|
page_title: "Task Drivers"
|
2015-09-19 19:18:08 +00:00
|
|
|
sidebar_current: "docs-drivers"
|
2015-09-12 00:01:02 +00:00
|
|
|
description: |-
|
2015-09-20 22:31:33 +00:00
|
|
|
Task Drivers are used to integrate with the host OS to run tasks in Nomad.
|
2015-09-12 00:01:02 +00:00
|
|
|
---
|
|
|
|
|
2015-09-20 22:31:33 +00:00
|
|
|
# Task Drivers
|
2015-09-12 00:01:02 +00:00
|
|
|
|
2015-09-20 22:31:33 +00:00
|
|
|
Task drivers are used by Nomad clients to execute a task and provide resource
|
|
|
|
isolation. By having extensible task drivers, Nomad has the flexibility to
|
|
|
|
support a broad set of workloads across all major operating systems.
|
2015-09-12 00:01:02 +00:00
|
|
|
|
2019-01-29 20:53:05 +00:00
|
|
|
Starting with Nomad 0.9, task drivers are now pluggable. This gives users the
|
|
|
|
flexibility to introduce their own drivers without having to recompile Nomad.
|
|
|
|
You can view the [plugin stanza][plugin] documentation for examples on how to
|
|
|
|
use the `plugin` stanza in Nomad's client configuration. Note that we have
|
|
|
|
introduced new syntax when specifying driver options in the client configuration
|
|
|
|
(see [docker][docker_plugin] for an example). Keep in mind that even though all
|
|
|
|
built-in drivers are now plugins, Nomad remains a single binary and maintains
|
|
|
|
backwards compatibility except with the `lxc` driver.
|
|
|
|
|
|
|
|
The list of supported task drivers is provided on the left of this page. Each
|
|
|
|
task driver documents the configuration available in a [job
|
|
|
|
specification](/docs/job-specification/index.html), the environments it can be
|
|
|
|
used in, and the resource isolation mechanisms available.
|
2015-09-12 00:01:02 +00:00
|
|
|
|
2015-09-20 22:31:33 +00:00
|
|
|
Nomad strives to mask the details of running a task from users and instead
|
|
|
|
provides a clean abstraction. It is possible for the same task to be executed
|
2019-01-29 20:53:05 +00:00
|
|
|
with different isolation levels depending on the client running the task. The
|
|
|
|
goal is to use the strictest isolation available and gracefully degrade
|
2015-09-20 22:31:33 +00:00
|
|
|
protections where necessary.
|
2019-01-29 20:53:05 +00:00
|
|
|
|
|
|
|
[plugin]: /docs/configuration/plugin.html
|
|
|
|
[docker_plugin]: /docs/drivers/docker.html#client-requirements
|