最近在學(xué)習(xí)docker的使用,今天成功在vps上部署了一個(gè)nodejs RESTful API服務(wù),數(shù)據(jù)庫使用了mongdb,記錄下過程。
- 克隆已經(jīng)push到GitHub上的nodejs服務(wù) 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
#拷貝當(dāng)前文件到 容器的 /app 位置
COPY . /app
#將容器的 /app 目錄設(shè)為工作目錄
WORKDIR /app
RUN npm install --registry=https://registry.npm.taobao.org
EXPOSE 8000
CMD ["npm", "start"]
- 進(jìn)入clone下來的目錄,開始構(gòu)建image
cd 201-nodejs-web
docker build -t restful .
- 下載官方的MongoDB image
docker pull mongo
- 后臺(tái)啟動(dòng)mongodb container
$ docker run --name mongodb -d mongo
- 利用build好的image啟動(dòng)nodejs 的container
# --link 已經(jīng)啟動(dòng)的container name : 別名
# -d 后臺(tái)運(yùn)行
# restful 是之前build 的image名稱
docker run --name rest --link mongodb:mongo -d restful
此時(shí),因?yàn)樵趎odejs中index.js 鏈接到mongodb的地址設(shè)置為"mongo:27017",('mongo'和上面--link中的第二個(gè)參數(shù)相同),所以此時(shí)nodejs服務(wù)器所在的container(rest)即可訪問到MongoDB的container(mongodb)。
參考資料: