现在对docker的使用和理解有点混乱,想请教一下大家。
例如:
我现在有一个内存8G的linux的系统。
我需要在这个系统上运行两个环境:alpha 和beta环境。
alpha和beta环境都用自己的nginx和mysql。
我目前的理解是有两种方案:
方案1:
创建两个 container:container_alpha,container_beta。 在两个container_alpha和container_beta和里面都安装好mysql和nginx
方案2:
创建四个 container,在四个container里面都**只**安装 alpha_mysql alpha_nginx beta_mysql beta_nginx
对于方案一来说,配置和使用以及管理会方便清晰很多。
对于方案二来说,每一个container都只对应了一个服务,不知道这是否更符合docker的原则。
或者说我对docker的理解还不对,那么请问docker的正确的使用姿势是怎么样的呢?
这取决于你把哪些当做一个服务,或"管理的单位"。
如果db+nginx+php总是一对一对一且彼此绑定,我觉得把这些当成一个服务也无不可。
如果数据库会有主从,读写分离之类东西,把一个mysql算一个服务会更方便。
另外方案2对扩展更友好,要改的时候不用拆image,只要改docker-compose 或其他配置即可。