mirror of
https://github.com/yeasy/docker_practice.git
synced 2024-11-20 05:23:42 +00:00
21 lines
1.1 KiB
Go
21 lines
1.1 KiB
Go
|
### VOLUME 定义匿名卷
|
|||
|
|
|||
|
格式为:
|
|||
|
|
|||
|
* `VOLUME ["<路径1>", "<路径2>"...]`
|
|||
|
* `VOLUME <路径>`
|
|||
|
|
|||
|
之前我们说过,容器运行时应该尽量保持容器存储层不发生写操作,对于数据库类需要保存动态数据的应用,其数据库文件应该保存于卷(volume)中,后面的章节我们会进一步介绍 Docker 卷的概念。为了防止运行时用户忘记将动态文件所保存目录挂载为卷,在 `Dockerfile` 中,我们可以事先指定某些目录挂载为匿名卷,这样在运行时如果用户不指定挂载,其应用也可以正常运行,不会向容器存储层写入大量数据。
|
|||
|
|
|||
|
```Dockerfile
|
|||
|
VOLUME /data
|
|||
|
```
|
|||
|
|
|||
|
这里的 `/data` 目录就会在运行时自动挂载为匿名卷,任何向 `/data` 中写入的信息都不会记录进容器存储层,从而保证了容器存储层的无状态化。当然,运行时可以覆盖这个挂载设置。比如:
|
|||
|
|
|||
|
```bash
|
|||
|
docker run -d -v mydata:/data xxxx
|
|||
|
```
|
|||
|
|
|||
|
在这行命令中,就使用了 `mydata` 这个命名卷挂载到了 `/data` 这个位置,替代了 `Dockerfile` 中定义的匿名卷的挂载配置。
|