背景
项目需要读取本地的一个文件,采用的方式是挂载本地目录作为volume
。但是在将这个项目部署到远端服务器时,项目image
可以直接拉取,而项目所需文件的迁移就成了问题
解决方案
- 创建一个专门用于
COPY
数据的image
,起名为data-image:1.0
- 接着就可以远程访问服务器,创建
docker-compose.yml
文件,通过挂载volume
的方式实现数据共享 - 到此为止就可以拉取镜像、启动服务了
1 | # Dockerfile |
1 | # docker-compose.yml |
总结
- 只有
volume
可以做到数据持久化,image
内的数据是无法被更改的 - 当项目启动后对依赖文件的改动会被记录在
project-data
中,而两个image
中/usr/src/data
目录下的内容会一直保持它们最开始的状态 - 启动服务后,
project-data
会被挂载到两个container
上,实现数据的共享,这个时候两个container
中/usr/src/data
目录下的内容与project-data
同步 - 如果删除了
project-data
,则对依赖文件的改动会丢失