Docker是个好东西,能用极少的系统资源消耗获得一个干净的系统.
但是Docker同时让人感到困惑.
看上去官方的推荐用法是一个Docker运行一个服务,多个Docker联合组成一个对外的应用.
例如:
使用Dockerfile构建
Web, DB, Nginx三个服务分别分布在3个Docker镜像.
通过卷挂载的形式,把外部的数据引入到容器中实现数据持久化.
运行容器,并使用内部互连的方式实现数据交互.容器之间只有网络对接.
各个子系统间实现高度的隔离与解耦.
很美好的做法, 但是Docker的容器并不保存任何数据, 重启后就会丢失.
这意味着即便是一个配置文件,一个额外添加的包,也是需要从外部卷引入.
(或者配置或添加一个额外的扩展的时候重新封装成新的镜像,并使用这个镜像运行)
没感觉到这做法和传统的虚拟机+快照除了资源占用以外有什么别的优势...
官方并不推荐在Docker里面运行bash,而所有的数据都运行在外部卷.
而这个外部的卷是个文件夹,而不是一个单一的文件.
(单一的文件或者少数的文件在分布式部署的时候有优势..)
现在纠结在于,Docker在生产环境中是如何应用的...
而在测试环境又是如何应用的...
Docker一个容器运行一个进程,通过网络对接的方式是解耦了.
但貌似官方并没提供一个方式能简单快捷的把一堆容器作为一个整体的服务来看待.
请教各位, Docker正确的使用姿势是怎样的?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.