docker_practice/image/dockerfile/volume.md

21 lines
1.1 KiB
Go
Raw Normal View History

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