在docker中部署node.js项目

1.在docker中使用node.js

不是使用本地的node.js,而是使用Docker,只需执行:

1
docker run -it --rm node node --version

Docker本地并没有node的镜像(image),需要到官网上查询这个名字的镜像,并下载到本地。这个过程可能比较漫长。

2.编写Dockerfile

Dockerfile文件里是一条条能被操作系统执行的命令,docker能根据该文件构建镜像。下面,在Node.js项目中新建一个Dockerfile:

1
2
cd 项目文件夹
vi Dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 基础镜像为node
FROM node:lts-alpine
# 镜像作者,可以附加联系信息
MAINTAINER gk

# 定义工作目录
WORKDIR /app

# 将Dockerfile当前目录下所有文件拷贝至容器内项目目录并安装项目依赖
COPY . /app
RUN npm install

# 容器对外暴露的端口号,要和node项目配置的端口号一致
EXPOSE 3000

# 容器启动时执行的命令
CMD [ "node", "app.js" ]

3.构建镜像

在项目根目录下执行命令构建对象:

1
docker build -t test .

其中,test为镜像的名称,可以任意填写
等待镜像构建完成后查看镜像:

1
docker images

就可以看到我们刚刚构建的test镜像

4.运行镜像

1
docker run -d -p 3000:3000 test

-d:表明容器会在后台运行
-p:表示端口映射,把本地的3000端口映射到docker容器的3000端口
后面的test是我们镜像的名字

通过docker ps查看我们刚刚运行的容器的id

5.测试

1
curl -i localhost:3000

如果返回相应的HTTP信息,表示成功