最近在学习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 645104928@qq.com
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)。
参考资料: