Docker – 用不同版本创build多个容器/环境

我从MongoDB开始,并采取四个课程。 他们都使用不同版本的mongodb,python,nodejs,asp.net,mean stack等。我期望的工作空间的结构:

courses ├─ mongodb_basic │ ├─ hello_world-2.7.py │ └─ data │ └─ db ├─ python-3.6_mongodb │ ├─ getting_started.py │ └─ data │ └─ db ├─ dotnet_and_mongodb │ ├─ (project files) │ └─ data │ └─ db ├─ mongodb_node │ ├─ (project files) │ └─ data │ └─ db └─ mean_intro └─ (project files) 

我想保持我的Windows 10系统干净利用Docker没有安装在主机上的所有东西,卡在第一课,不知道如何:

  • 链接容器
    • python/pymongo <-> mongodb
    • aspnet <-> mongodb
    • ... <-> mongodb
  • 地图数据\文件夹
  • 用一个命令启动/停止链接的容器(合意的)

我想在主机(外部硬盘)上保留一个工作区,以便在不同的计算机上工作(三台W10电脑)。

谷歌的结果有很多内容(容器,docker,撰写等),不知道从哪里开始。

我认为可以用docker -compose来做你正在做的事情,并正确地定义dockerfiles 。 所以,如果你想知道从哪里开始,我会build议熟悉dockerfiles和docker -compose 。

回答你的问题:

  • 链接容器 :可以使用docker-compose完成。 指定您想要在这里指定的合成文件中使用的容器服务。

注意: volumes:声明是指定要访问的容器的工作空间文件夹结构的位置。

  • 地图文件夹/数据:我再次检查了上面提到的链接。 在他们的dockerfile他们使用ADD命令将容器的当前目录添加到/code目录的path中。 这是作为一个volume:包括在撰写文件。 那是什么意思? 那么无论你在主机工作区中改变什么,都应该显示在容器的根目录下。

  • 使用一个命令启动/停止:您应该能够使用docker-compose updocker-compose startdocker-compose stop命令之一创build,启动或停止所有服务或特定服务。

对于你的应用程序,你甚至可以将所有的dockerfiles中的工作空间定义为卷,然后用脚本构build它们。 或者你也可以使用一些类似Kubernetes的编排服务,但这可能是矫枉过正的。

希望这是有帮助的。