mirror of
https://github.com/kreuzwerker/terraform-provider-docker.git
synced 2026-02-02 19:59:30 -05:00
* feat: Implement docker cluster volume * fix: linter findings * fix: Make cluster attribute updateable
98 lines
No EOL
3.2 KiB
Markdown
98 lines
No EOL
3.2 KiB
Markdown
---
|
|
# 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.
|
|
---
|
|
<!-- Bug: Type and Name are switched -->
|
|
# 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 generated by tfplugindocs -->
|
|
## 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.
|
|
|
|
<a id="nestedblock--cluster"></a>
|
|
### 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.
|
|
|
|
|
|
<a id="nestedblock--labels"></a>
|
|
### 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
|
|
``` |