---
# generated by https://github.com/hashicorp/terraform-plugin-docs
page_title: "Resource docker_volume - terraform-provider-docker"
subcategory: ""
description: |-
Creates and destroys a volume in Docker. This can be used alongside docker_container container.md to prepare volumes that can be shared across containers.
---
# Resource (docker_volume)
Creates and destroys a volume in Docker. This can be used alongside [docker_container](container.md) to prepare volumes that can be shared across containers.
## Example Usage
```terraform
resource "docker_volume" "shared_volume" {
name = "shared_volume"
}
```
## Schema
### Optional
- `cluster` (Block List, Max: 1) Cluster-specific options for volume creation. Only works if the Docker daemon is running in swarm mode and is the swarm manager. (see [below for nested schema](#nestedblock--cluster))
- `driver` (String) Driver type for the volume. Defaults to `local`.
- `driver_opts` (Map of String) Options specific to the driver.
- `labels` (Block Set) User-defined key/value metadata (see [below for nested schema](#nestedblock--labels))
- `name` (String) The name of the Docker volume (will be generated if not provided).
### Read-Only
- `id` (String) The ID of this resource.
- `mountpoint` (String) The mountpoint of the volume.
### Nested Schema for `cluster`
Optional:
- `availability` (String) Availability of the volume. Can be `active` (default), `pause`, or `drain`.
- `group` (String) Cluster Volume group
- `limit_bytes` (String) Minimum size of the Cluster Volume in human readable memory bytes (like 128MiB, 2GiB, etc). Must be in format of KiB, MiB, Gib, Tib or PiB.
- `required_bytes` (String) Maximum size of the Cluster Volume in human readable memory bytes (like 128MiB, 2GiB, etc). Must be in format of KiB, MiB, Gib, Tib or PiB.
- `scope` (String) The scope of the volume. Can be `single` (default) or `multi`.
- `sharing` (String) The sharing mode. Can be `none` (default), `readonly`, `onewriter` or `all`.
- `topology_preferred` (String) A topology that the Cluster Volume would be preferred in
- `topology_required` (String) A topology that the Cluster Volume must be accessible from
- `type` (String) Cluster Volume access type. Can be `mount` or `block` (default).
Read-Only:
- `id` (String) The ID of the cluster volume.
### Nested Schema for `labels`
Required:
- `label` (String) Name of the label
- `value` (String) Value of the label
## Import
Import is supported using the following syntax by providing the `id`:
```shell
#!/bin/bash
terraform import docker_volume.foo id
```
### Example
Assuming you created a `volume` as follows
```shell
#!/bin/bash
docker volume create
# prints the long ID
524b0457aa2a87dd2b75c74c3e4e53f406974249e63ab3ed9bf21e5644f9dc7d
```
you provide the definition for the resource as follows
```terraform
resource "docker_volume" "foo" {
name = "524b0457aa2a87dd2b75c74c3e4e53f406974249e63ab3ed9bf21e5644f9dc7d"
}
```
then the import command is as follows
```shell
#!/bin/bash
terraform import docker_volume.foo 524b0457aa2a87dd2b75c74c3e4e53f406974249e63ab3ed9bf21e5644f9dc7d
```