docker 搭建 nodejs + mongodb 实现RESTful API

最近在学习docker的使用,今天成功在vps上部署了一个nodejs RESTful API服务,数据库使用了mongdb,记录下过程。

  • 克隆已经push到GitHub上的nodejs服务 GitHub地址
> git clone https://github.com/NxDon/201-nodejs-web.git
  • 编写Dockerfile
# Statusbar

# VERSION    1.0.0
FROM daocloud.io/node:5
MAINTAINER [email protected]

ENV HTTP_PORT 8000
#拷贝当前文件到 容器的 /app 位置
COPY . /app
#将容器的 /app 目录设为工作目录
WORKDIR /app

RUN npm install --registry=https://registry.npm.taobao.org

EXPOSE 8000

CMD ["npm", "start"]
  • 进入clone下来的目录,开始构建image
cd 201-nodejs-web
docker build -t restful .  
  • 下载官方的MongoDB image
docker pull mongo
  • 后台启动mongodb container
$ docker run --name mongodb -d mongo
  • 利用build好的image启动nodejs 的container
# --link 已经启动的container name : 别名
# -d 后台运行
# restful 是之前build 的image名称
docker run --name rest --link mongodb:mongo -d restful

此时,因为在nodejs中index.js 链接到mongodb的地址设置为"mongo:27017",('mongo'和上面--link中的第二个参数相同),所以此时nodejs服务器所在的container(rest)即可访问到MongoDB的container(mongodb)。

参考资料:

  1. https://onbing.com/first-blog/
  2. https://docs.docker.com/samples/library/mongo/#-or-via-mongo
  3. https://docs.docker.com/engine/userguide/networking/default_network/dockerlinks/#connect-using-network-port-mapping
  4. https://www.thachmai.info/2015/05/10/docker-container-linking-mongo-node/

你可能感兴趣的:(docker 搭建 nodejs + mongodb 实现RESTful API)