之前写过这个,可读性不高,我现在重新写一下。
1、先拉取node
docker pull node:latest
2、在nodejs项目根目录下创建Dockerfile文件,并进行配置
FROM node:latest
RUN mkdir -p /usr/src/school
WORKDIR /usr/src/school
COPY . /usr/src/school
WORKDIR /usr/src/school/website
RUN npm install --registry=https://registry.npm.taobao.org
EXPOSE 3000
CMD ["npm", "run", "dev-win"]
3、创建docker镜像
docker build -t schoolnode .
(最后这个小数点不能忘了)
4、拉取mongo
docker pull mongo:latest
5、运行mongo
docker run --name mongo -v /usr/src/mongo:/data/db -d -p 27017:27017 mongo --auth
6、因为运行mongo时加了--auth
,所以需要配置mongo用户信息:
a、先进入mongo
docker exec -it mongo /bin/bash
b、连接到admin
mongo admin
c、创建manager user
db.createUser({user:"root", pwd:"root",roles:[{role:"root",db:"admin"}]})
d、可以通过admin
登录mogno
,然后去创建其他数据库,并为其创建manager user
,然后就可以通过创建的user
登录相应的数据库了。(可以通过工具mongoChef Core完成)
7、运行nodejs镜像
docker run -d -p 3000:3000 --name schoolnode --link mongo:mongo schoolnode
注意:必须要加--link,不然连接不到mongo数据库(当然,也有其他办法,此处暂时不讲),--link后面的mongo:mongo
是指将mongo
容器连接到此容器,别名也叫mongo