mirror of https://github.com/docker/cli.git
122 lines
4.8 KiB
Markdown
122 lines
4.8 KiB
Markdown
# volume create
|
|
|
|
<!---MARKER_GEN_START-->
|
|
Create a volume
|
|
|
|
### 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-->
|
|
|
|
## 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:
|
|
|
|
```console
|
|
$ docker volume create hello
|
|
|
|
hello
|
|
|
|
$ docker run -d -v hello:/world busybox ls /world
|
|
```
|
|
|
|
The mount is created inside the container's `/world` directory. Docker doesn't
|
|
support relative paths for mount points inside the container.
|
|
|
|
Multiple containers can use the same volume. This is useful if two containers
|
|
need access to shared data. For example, if one container writes and the other
|
|
reads the data.
|
|
|
|
Volume names must be unique among drivers. This means you can't use the same
|
|
volume name with two different drivers. Attempting to create two volumes with
|
|
the same name results in an error:
|
|
|
|
```console
|
|
A volume named "hello" already exists with the "some-other" driver. Choose a different volume name.
|
|
```
|
|
|
|
If you specify a volume name already in use on the current driver, Docker
|
|
assumes you want to reuse the existing volume and doesn't return an error.
|
|
|
|
### <a name="opt"></a> Driver-specific options (-o, --opt)
|
|
|
|
Some volume drivers may take options to customize the volume creation. Use the
|
|
`-o` or `--opt` flags to pass driver options:
|
|
|
|
```console
|
|
$ docker volume create --driver fake \
|
|
--opt tardis=blue \
|
|
--opt timey=wimey \
|
|
foo
|
|
```
|
|
|
|
These options are passed directly to the volume driver. Options for
|
|
different volume drivers may do different things (or nothing at all).
|
|
|
|
The built-in `local` driver accepts no options on Windows. On Linux and with
|
|
Docker Desktop, the `local` driver 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 found
|
|
[here](https://man7.org/linux/man-pages/man8/mount.8.html).
|
|
|
|
For example, the following creates a `tmpfs` volume called `foo` with a size of
|
|
100 megabyte and `uid` of 1000.
|
|
|
|
```console
|
|
$ docker volume create --driver local \
|
|
--opt type=tmpfs \
|
|
--opt device=tmpfs \
|
|
--opt o=size=100m,uid=1000 \
|
|
foo
|
|
```
|
|
|
|
Another example that uses `btrfs`:
|
|
|
|
```console
|
|
$ docker volume create --driver local \
|
|
--opt type=btrfs \
|
|
--opt device=/dev/sda2 \
|
|
foo
|
|
```
|
|
|
|
Another example that uses `nfs` to mount the `/path/to/dir` in `rw` mode from
|
|
`192.168.1.1`:
|
|
|
|
```console
|
|
$ docker volume create --driver local \
|
|
--opt type=nfs \
|
|
--opt o=addr=192.168.1.1,rw \
|
|
--opt device=:/path/to/dir \
|
|
foo
|
|
```
|
|
|
|
## Related commands
|
|
|
|
* [volume inspect](volume_inspect.md)
|
|
* [volume ls](volume_ls.md)
|
|
* [volume rm](volume_rm.md)
|
|
* [volume prune](volume_prune.md)
|
|
* [Understand Data Volumes](https://docs.docker.com/storage/volumes/)
|