推荐使用pm2去管理node项目,下面使用docker下的pm2发布node项目
为什么使用pm2容器,而不是直接用node容器?
docker 下node容器的内存管理默认是系统托管,当项目的内存过大时,项目会被停止
而使用pm2时,node项目的内容是由pm2管理的,同时当node停止时,pm2会自动帮你重启项目
1、docker部署(centos7)
这里是参照官方的安装步骤
安装依赖
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum-config-manager --enable docker-ce-edge
sudo yum install docker-ce
启动docker并设置为开机启动
sudo systemctl enable docker
sudo systemctl start docker
docker配置国内镜像
这里使用的是阿里云的镜像加速地址,这个地址是可以免费申请
您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["你的镜像加速地址"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
2、拉取pm2镜像
进入阿里云的容器镜像服务地址
输入pm2搜索
点击需要的镜像查看详情
点击复制地址
docker pull registry.cn-hangzhou.aliyuncs.com/wezchina/centos-pm2-docker
3、启动容器
镜像拉取成功后可以使用 docker images 查看
将node项目放到/usr/local/node-project文件夹下
使用命令启动并共享项目文件夹
docker run -v /usr/local/node-project:/data --net=host -it registry.cn-hangzhou.aliyuncs.com/gtts/pm2 bash
4、启动node项目
文章中使用的docker镜像容器中,node为6.x 版本,如果有需要可以参照 linux下node的安装以及环境配置 修改为所需的node版本
进入容器 docker exec -it [container_id] bash
进入项目文件夹 cd /data/xxxx
启动项目 pm2 start bin/www --name [your project name]