Docker - 使用不同版本

时间:2017-03-27 20:21:43

标签: windows mongodb docker docker-compose

我从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)

我希望使用Docker保持Windows 10系统的清洁,而无需在主机上安装所有内容并停留在第一道菜中,不知道如何:

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

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

谷歌的搜索结果很多(容器化,码头组合等)并且不知道从哪里开始。

1 个答案:

答案 0 :(得分:1)

我认为可以使用docker-compose并正确定义 dockerfiles 来做你想做的事情。因此,如果您想知道从哪里开始,我建议您熟悉dockerfilesdocker-compose

回答你的问题:

  • 关联容器: 可以使用docker-compose完成。指定要在指定文件中使用的容器服务,例如指定here的容器服务。

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

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

  • 使用一个命令启动/停止:您应该能够使用docker-compose up之一创建,启动或停止所有服务或特定服务,{{1 }或docker-compose start 命令。

对于您的应用程序,您甚至可以将所有工作区定义为所有dockerfiles中的卷,然后使用脚本构建它们。或者您也可以使用像Kubernetes这样的某种编排服务,但这可能有点过头了。

希望这有帮助。