docker部署node项目

首先你要准备一台服务器,你可以选择购买各大厂商的服务器,你也可以选择自己搭建一个centos服务器,可以参考之前的文章了解快速搭建centos7

Dockerfile

了解Dockerfile之前我们先介绍它是干什么的?

Dockerfile是一个配置文件,相当于一个node项目中的package.json文件,根据依赖来生成其他内容。

在使用docker前一定要先启动docker软件。

1
systemctl start docker

生成项目

这次我们选择的node项目是通过express-generator进行生成的。这个npm包可以生成一些简单的页面。

要使用npm我们需要先安装node,安装node要先安装nvm,安装流程如下。

1
2
3
4
5
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
nvm install stable
node -v
npm i cnpm -g
npm i nrm -g

使用express-generator也非常简单。命令如下,我们的项目文件夹存放在app目录。

1
2
npm install express-generator -g
express app

编写Dockerfile文件,自己通过命令建立一个这样的文件夹,如果不了解vi命令,请查看文章vi编辑器

1
vi Dockerfile

这个配置文件里面的内容

1
2
3
4
5
6
FROM node
COPY ./app /app
WORKDIR /app
RUN npm install
EXPOSE 3000
CMD npm start

参数FROM表示依赖的镜像,COPY表示将宿主机的文件拷贝到容器中,WORKDIR表示工作目录,RUN表示编译打包运行前执行的命令,EXPOSE表示容器暴露的断开,CMD表示容器中运行的命令。

了解更多参数访问docker文档

编写Dockerfile完成之后,通过命令生成镜像

1
docker build -t express-demo .

-t表示指定镜像的名字,.表示在当前目录的Dockerfile开始构建。

然后就根据镜像运行我们的容器了。

1
docker container run -d -p 3333:3000 express-demo

通过IP:3333来访问当前的express项目吧。