1. 数据持久化
由于 docker 镜像是只读的,而容器又是随时创建删除,那么数据保存在哪里呢?有两种方法:
1.保存在主机上,通过挂载的方式使容器内能够访问数据
2.保持在一个专门存放数据的容器内
开发时,通常将应用代码放在主机上,创建容器并将应用代码目录挂载进去,便于调试和修改。开发完成时,将应用代码直接复制到容器内,整个打包起来,便于部署和迁移。
当然,把应用代码集成到容器内的方法比较适合那些开发之后基本不再变化或者很少变化的应用,如果应用代码需要经常更新升级,那么这样反而会变得繁琐。
由于 docker 容器目前(2015.06.19)还不支持添加特殊标记以避免误删除,因此我建议谨慎使用数据卷。一定要注意数据备份,docker 容器中的数据丢失了要再找回来是件相当麻烦的事!
2. docker 思想
每个容器只做一件事
3. 技术选型
对于架构,永远没有完美的架构,只有适合自己的架构。
技术选型最重要的是权衡当前的项目需要,团队对各种技术了解的程度以及该技术选型带来的复杂度。
在项目迭代过程中保持项目的简单的能力是衡量技术水平的重要标准