2015-06-12 09:25:32 -04:00
|
|
|
# volume create
|
|
|
|
|
2023-01-06 13:04:05 -05:00
|
|
|
<!---MARKER_GEN_START-->
|
2016-07-07 14:43:18 -04:00
|
|
|
Create a volume
|
2015-06-12 09:25:32 -04:00
|
|
|
|
2023-01-06 13:04:05 -05:00
|
|
|
### Options
|
|
|
|
|
|
|
|
| Name | Type | Default | Description |
|
|
|
|
|:------------------------------|:---------|:---------|:-----------------------------------------------------------------------|
|
|
|
|
| `--availability` | `string` | `active` | Cluster Volume availability (`active`, `pause`, `drain`) |
|
|
|
|
| `-d`, `--driver` | `string` | `local` | Specify volume driver name |
|
|
|
|
| `--group` | `string` | | Cluster Volume group (cluster volumes) |
|
|
|
|
| `--label` | `list` | | Set metadata for a volume |
|
|
|
|
| `--limit-bytes` | `bytes` | `0` | Minimum size of the Cluster Volume in bytes |
|
|
|
|
| [`-o`](#opt), [`--opt`](#opt) | `map` | `map[]` | Set driver specific options |
|
|
|
|
| `--required-bytes` | `bytes` | `0` | Maximum size of the Cluster Volume in bytes |
|
|
|
|
| `--scope` | `string` | `single` | Cluster Volume access scope (`single`, `multi`) |
|
|
|
|
| `--secret` | `map` | `map[]` | Cluster Volume secrets |
|
|
|
|
| `--sharing` | `string` | `none` | Cluster Volume access sharing (`none`, `readonly`, `onewriter`, `all`) |
|
|
|
|
| `--topology-preferred` | `list` | | A topology that the Cluster Volume would be preferred in |
|
|
|
|
| `--topology-required` | `list` | | A topology that the Cluster Volume must be accessible from |
|
|
|
|
| `--type` | `string` | `block` | Cluster Volume access type (`mount`, `block`) |
|
|
|
|
|
|
|
|
|
|
|
|
<!---MARKER_GEN_END-->
|
2015-06-12 09:25:32 -04:00
|
|
|
|
2017-02-07 18:42:48 -05:00
|
|
|
## Description
|
|
|
|
|
|
|
|
Creates a new volume that containers can consume and store data in. If a name is
|
|
|
|
not specified, Docker generates a random name.
|
|
|
|
|
|
|
|
## Examples
|
|
|
|
|
|
|
|
Create a volume and then configure the container to use it:
|
2015-06-12 09:25:32 -04:00
|
|
|
|
2021-08-21 08:54:14 -04:00
|
|
|
```console
|
2016-06-14 18:42:30 -04:00
|
|
|
$ docker volume create hello
|
2017-02-07 18:42:48 -05:00
|
|
|
|
2016-02-11 21:48:16 -05:00
|
|
|
hello
|
2015-11-09 03:17:50 -05:00
|
|
|
|
2016-02-11 21:48:16 -05:00
|
|
|
$ docker run -d -v hello:/world busybox ls /world
|
|
|
|
```
|
2015-06-12 09:25:32 -04:00
|
|
|
|
2017-02-07 18:42:48 -05:00
|
|
|
The mount is created inside the container's `/world` directory. Docker does not
|
|
|
|
support relative paths for mount points inside the container.
|
2015-06-12 09:25:32 -04:00
|
|
|
|
2017-02-07 18:42:48 -05:00
|
|
|
Multiple containers can use the same volume in the same time period. This is
|
|
|
|
useful if two containers need access to shared data. For example, if one
|
|
|
|
container writes and the other reads the data.
|
2015-06-12 09:25:32 -04:00
|
|
|
|
2017-02-07 18:42:48 -05:00
|
|
|
Volume names must be unique among drivers. This means you cannot use the same
|
|
|
|
volume name with two different drivers. If you attempt this `docker` returns an
|
|
|
|
error:
|
2015-10-04 08:09:51 -04:00
|
|
|
|
2020-05-11 11:32:52 -04:00
|
|
|
```console
|
2015-10-29 22:48:56 -04:00
|
|
|
A volume named "hello" already exists with the "some-other" driver. Choose a different volume name.
|
2015-10-04 08:09:51 -04:00
|
|
|
```
|
|
|
|
|
2017-02-07 18:42:48 -05:00
|
|
|
If you specify a volume name already in use on the current driver, Docker
|
|
|
|
assumes you want to re-use the existing volume and does not return an error.
|
2015-10-04 08:09:51 -04:00
|
|
|
|
2023-01-06 13:28:29 -05:00
|
|
|
### <a name="opt"></a> Driver-specific options (-o, --opt)
|
2015-06-12 09:25:32 -04:00
|
|
|
|
2017-02-07 18:42:48 -05:00
|
|
|
Some volume drivers may take options to customize the volume creation. Use the
|
|
|
|
`-o` or `--opt` flags to pass driver options:
|
2015-06-12 09:25:32 -04:00
|
|
|
|
2021-08-21 08:54:14 -04:00
|
|
|
```console
|
2017-02-07 18:42:48 -05:00
|
|
|
$ docker volume create --driver fake \
|
|
|
|
--opt tardis=blue \
|
|
|
|
--opt timey=wimey \
|
|
|
|
foo
|
2016-02-11 21:48:16 -05:00
|
|
|
```
|
2015-06-12 09:25:32 -04:00
|
|
|
|
|
|
|
These options are passed directly to the volume driver. Options for
|
|
|
|
different volume drivers may do different things (or nothing at all).
|
|
|
|
|
2016-02-11 21:48:16 -05:00
|
|
|
The built-in `local` driver on Windows does not support any options.
|
|
|
|
|
2017-02-07 18:42:48 -05:00
|
|
|
The built-in `local` driver on Linux accepts options similar to the linux
|
|
|
|
`mount` command. You can provide multiple options by passing the `--opt` flag
|
|
|
|
multiple times. Some `mount` options (such as the `o` option) can take a
|
|
|
|
comma-separated list of options. Complete list of available mount options can be
|
2021-10-14 18:04:36 -04:00
|
|
|
found [here](https://man7.org/linux/man-pages/man8/mount.8.html).
|
2016-10-14 18:30:36 -04:00
|
|
|
|
2017-02-07 18:42:48 -05:00
|
|
|
For example, the following creates a `tmpfs` volume called `foo` with a size of
|
|
|
|
100 megabyte and `uid` of 1000.
|
2016-02-11 21:48:16 -05:00
|
|
|
|
2021-08-21 08:54:14 -04:00
|
|
|
```console
|
2017-02-07 18:42:48 -05:00
|
|
|
$ docker volume create --driver local \
|
|
|
|
--opt type=tmpfs \
|
|
|
|
--opt device=tmpfs \
|
|
|
|
--opt o=size=100m,uid=1000 \
|
|
|
|
foo
|
2016-02-11 21:48:16 -05:00
|
|
|
```
|
|
|
|
|
2016-06-29 21:11:41 -04:00
|
|
|
Another example that uses `btrfs`:
|
2016-02-11 21:48:16 -05:00
|
|
|
|
2021-08-21 08:54:14 -04:00
|
|
|
```console
|
2017-02-07 18:42:48 -05:00
|
|
|
$ docker volume create --driver local \
|
|
|
|
--opt type=btrfs \
|
|
|
|
--opt device=/dev/sda2 \
|
|
|
|
foo
|
2016-06-29 21:11:41 -04:00
|
|
|
```
|
|
|
|
|
2017-02-07 18:42:48 -05:00
|
|
|
Another example that uses `nfs` to mount the `/path/to/dir` in `rw` mode from
|
|
|
|
`192.168.1.1`:
|
2016-06-29 21:11:41 -04:00
|
|
|
|
2021-08-21 08:54:14 -04:00
|
|
|
```console
|
2017-02-07 18:42:48 -05:00
|
|
|
$ docker volume create --driver local \
|
|
|
|
--opt type=nfs \
|
|
|
|
--opt o=addr=192.168.1.1,rw \
|
|
|
|
--opt device=:/path/to/dir \
|
|
|
|
foo
|
2016-02-11 21:48:16 -05:00
|
|
|
```
|
|
|
|
|
2017-02-07 18:42:48 -05:00
|
|
|
## Related commands
|
2016-02-18 14:52:15 -05:00
|
|
|
|
|
|
|
* [volume inspect](volume_inspect.md)
|
|
|
|
* [volume ls](volume_ls.md)
|
|
|
|
* [volume rm](volume_rm.md)
|
2016-10-18 06:50:11 -04:00
|
|
|
* [volume prune](volume_prune.md)
|
2020-04-19 09:43:08 -04:00
|
|
|
* [Understand Data Volumes](https://docs.docker.com/storage/volumes/)
|