默认行为
默认情况下,容器创建的文件都存储在可写的容器层,这意味着:
- 数据无法持久化: 容器内产生的数据的生命周期与容器一致,当容器销毁时,数据随之销毁;
- 数据无法共享: 容器间无法共享数据;
挂载方式
- Volumes(数据卷):将宿主机或者云存储等某个目录挂载到容器,特点是:1. 数据生命周期独立于容器,可持久存储;2. 数据卷由Docker管理,非Docker进程无法修改;
- Bind mounts:将宿主机某个目录挂载到容器,特点是:1. 数据生命周期独立于容器,可持久存储;2. 宿主机上的任意进程只要有权限就可以修改;
- tmpfs mounts:将宿主机某个目录挂载到容器,特点是:数据生命周期独立于容器,但无法持久存储;
使用场景
Volumes
- 容器间数据共享;
- 数据持久化到云端或者其他远程服务器;
- 数据的备份、迁移及恢复等;
Bind mounts
- 宿主机与容器间共享数据,比如配置文件、应用代码等,常见于发布场景;
tmpfs mounts
- 容器需要写大量的非持久化数据,提升性能;
参考: