--- # 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 ```