Using Docker Compose in Node.js Project

Fangdun Cai
Oct 23, 2015 · 3 min read

Why use Docker Compose?


Docker 到底有什么优点吸引我们?

  • Build:允许自由组合各种服务来构建我们的应用,避免**开发**和**生产之间的环境问题,并且不局限在任何平台和语言
  • Ship:通过统一的用户接口,管理,设计应用开发、测试、发布的生命周期
  • Run:可以快捷地在多个平台,发布可扩展、安全、可靠的服务

Use it!

说了这么多,那就让我们玩起来!

0. Install Docker Tools

  • Docker — 开源的容器应用引擎
  • Machine — 管理本地、云服务提供商中的 Docker 服务
  • Compose — 定义,组合,运行多个容器应用

* 如果是 Mac OS X 用户,请先安装 Virtualbox `brew cask install virtualbox`。
* 如果不喜欢 Docker CLI 工具,也可以安装 Kitematic,Kitematic 是 Docker 的 GUI 管理工具。

1. Create Node.js Project

  • server.js
  • package.json

2. Machine:在 virtualbox 中创建 Docker Host

3. Compose:定义及操作

为项目创建 Dockerfile

  • Dockerfile

创建 docker-compose.yml 来组合 Node.js, Redis, Mongodb 服务

  • docker-compose.yml

测试、访问我们的服务 :rocket:

关闭服务,休息下

* Compose 的前身是 fig。

* `up` `start` `logs` `stop` `rm` 等 COMMANDs 可以针对某个 Container 使用 e.g: `$ docker-compose logs app`

* 如果 Node 项目比较大,依赖的模块较多,频繁改动,我们可以不需要创建 Node 项目本身的 Container,只需要创建启动其他服务即可。

其他工具

* Vargant — 也是一款环境构建工具,比 Docker 还早

Vargant 是一款不错的工具,可以帮助我们快速搭建各种服务环境,也能团队之间进行分享,现在基于它的工具链也越来越丰富,感兴趣也可以一试。

* 不用其他构建工具,我们自己搭

“自己动手,丰衣足食” - 不依赖环境构建工具,自己搭,时间精力充足的化,不妨一试,会收获更多。

最后

Docker 可玩的不仅仅如此,还可以打包、发布容器应用到线上,构建自己的 Paas(dokku) 服务等。

Docker Compose 也可以有更高级玩法。

Enjoy!

Relates

* https://docs.docker.com/kitematic/
* https://docs.docker.com/installation/mac/
* https://docs.docker.com/machine/install-machine/
* https://docs.docker.com/compose/install/
* https://github.com/mhart/alpine-node
* https://github.com/progrium/dokku

Fangdun Cai

Written by

Let it be!

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade