# docker volume create

**Descripción:** Crea un volumen

**Uso:** `docker volume create [OPTIONS] [VOLUME]`










## Descripción

Crea un nuevo volumen que los contenedores pueden consumir y utilizar para almacenar datos. Si no se especifica un nombre, Docker genera un nombre aleatorio.


## Opciones

| Opción                                                        | Predeterminado                                        | Descripción                                                                                                                                    |
| ------------------------------------------------------------- | ----------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|  | `--availability` | `active` | API 1.42+ **Swarm** Disponibilidad del volumen del clúster (`active`, `pause`, `drain`) |

 | `-d`, `--driver` | `local` |  Especifica el nombre del controlador del volumen |

 | `--group` |  | API 1.42+ **Swarm** Grupo del volumen del clúster (volúmenes de clúster) |

 | `--label` |  |  Establece metadatos para un volumen |

 | `--limit-bytes` |  | API 1.42+ **Swarm** Tamaño mínimo del volumen del clúster en bytes |

 | `-o`, `--opt` |  |  Establece opciones específicas del controlador |

 | `--required-bytes` |  | API 1.42+ **Swarm** Tamaño máximo del volumen del clúster en bytes |

 | `--scope` | `single` | API 1.42+ **Swarm** Alcance de acceso del volumen del clúster (`single`, `multi`) |

 | `--secret` |  | API 1.42+ **Swarm** Secretos del volumen del clúster |

 | `--sharing` | `none` | API 1.42+ **Swarm** Uso compartido de acceso al volumen del clúster (`none`, `readonly`, `onewriter`, `all`)<br> |

 | `--topology-preferred` |  | API 1.42+ **Swarm** Topología en la que se preferiría el volumen del clúster |

 | `--topology-required` |  | API 1.42+ **Swarm** Topología desde la que debe ser accesible el volumen del clúster |

 | `--type` | `block` | API 1.42+ **Swarm** Tipo de acceso del volumen del clúster (`mount`, `block`) |




## Ejemplos

Crea un volumen y luego configura el contenedor para usarlo:

```console
$ docker volume create hello

hello

$ docker run -d -v hello:/world busybox ls /world
```

El montaje se crea dentro del directorio `/world` del contenedor. Docker no admite rutas relativas para los puntos de montaje dentro del contenedor.

Múltiples contenedores pueden usar el mismo volumen. Esto es útil si dos contenedores necesitan acceder a datos compartidos; por ejemplo, si un contenedor escribe y el otro lee los datos.

Los nombres de los volúmenes deben ser únicos entre los controladores. Esto significa que no puedes usar el mismo nombre de volumen con dos controladores diferentes. Intentar crear dos volúmenes con el mismo nombre produce un error:

```console
A volume named  "hello"  already exists with the "some-other" driver. Choose a different volume name.
```

Si especificas un nombre de volumen que ya está en uso en el controlador actual, Docker asume que deseas reutilizar el volumen existente y no devuelve ningún error.

### Opciones específicas del controlador (-o, --opt) {#opt}

Algunos controladores de volumen pueden aceptar opciones para personalizar la creación del volumen. Utiliza las opciones `-o` o `--opt` para pasar las opciones al controlador:

```console
$ docker volume create --driver fake \
    --opt tardis=blue \
    --opt timey=wimey \
    foo
```

Estas opciones se pasan directamente al controlador de volumen. Las opciones para diferentes controladores de volumen pueden realizar diferentes acciones (o ninguna en absoluto).

El controlador `local` integrado no acepta opciones en Windows. En Linux y con Docker Desktop, el controlador `local` acepta opciones similares al comando `mount` de Linux. Puedes proporcionar múltiples opciones pasando la opción `--opt` varias veces. Algunas opciones de `mount` (como la opción `o`) pueden tomar una lista de opciones separadas por comas. Se puede encontrar la lista completa de opciones de montaje disponibles [aquí](https://man7.org/linux/man-pages/man8/mount.8.html).

Por ejemplo, el siguiente comando crea un volumen `tmpfs` llamado `foo` con un tamaño de 100 megabytes y un `uid` de 1000.

```console
$ docker volume create --driver local \
    --opt type=tmpfs \
    --opt device=tmpfs \
    --opt o=size=100m,uid=1000 \
    foo
```

Otro ejemplo que utiliza `btrfs`:

```console
$ docker volume create --driver local \
    --opt type=btrfs \
    --opt device=/dev/sda2 \
    foo
```

Otro ejemplo que utiliza `nfs` para montar `/path/to/dir` en modo `rw` desde `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
```



