参考文档:https://nodejs.org/zh-cn/docs/guides/nodejs-docker-webapp

安装node镜像

1
docker pull node # 默认安装 node:latest 最新版

进入node项目

新建 Dockerfile.dockerignore文件

Dockerfile:

1
2
3
4
5
6
7
8
9
10
11
12
FROM node:latest

WORKDIR /usr/src/app

COPY package*.json ./

RUN npm install

COPY . .

EXPOSE 9000
CMD [ "node", "app.js" ]

.dockerignore:

1
2
node_modules
npm-degub.log

目录结构

1
2
3
4
5
6
.
|-- app.js
|-- Dockerfile
|-- .dockerignore
|-- package.json
`-- package-lock.json

构建镜像

1
docker build . -t <username>/node-deocker-test
1
2
3
[root@VM-0-9-centos node-test]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
oyal/node-test latest b74b8c545667 22 minutes ago 911MB

运行容器

1
2
3
4
[root@VM-0-9-centos node-test]# docker run -d -p 9000:9000 oyal/node-test

[root@VM-0-9-centos node-test]# curl 127.0.0.1:9000
nodejs-----deocker

将主机数据挂载到容器

1
docker run -d -p 9000:9000 -v /root/node-test:/usr/src/app oyal/node-test