docker不同的开发环境

用docker分隔不同项目开发环境的最佳方法是什么?

谈到Mac,当它不是原生支持,我曾经有两个docker机,可以说projectA和projectB,所以我只是eval $(docker-machine env projectA)为了访问这个项目的所有容器。

在容器方面我有:

项目A:

  • MySQL的
  • MongoDB的
  • ActiveMQ的
  • 卡桑德拉

项目B:

  • MySQL的
  • MongoDB的

是否有可能有这样的分离,所以任何人docker ps -a只会看到与当前选定的机器相关的容器?

我可以继续使用docker-machine做这个,但是不会使用本机启用的function,而且执行速度也会变慢。

谢谢!

Docker本身不支持Mac – Docker for Mac使用本地虚拟化 ,但仍然有Docker客户端连接的Linux虚拟机正在运行。

你说得对,Docker for Mac的性能和集成性更好,但是折衷是你只能得到一个虚拟机,你不能创build第二个虚拟机,并且有两个Docker引擎在运行,这是唯一的物理方法隔离容器。

Docker for Mac和Docker Toolbox 可以共存 ,所以这是一种select。 另一种select是通过在相同的Dockernetworking中运行相关的容器将它们逻辑分离 – 但是它们仍然会在docker ps显示出来。