docker部署node服务pm2

发布时间:2023年12月18日
mkdir /data
cd /data

?拉取最新keymetrics/pm2:latest-alpine镜像

docker pull keymetrics/pm2 

从github上拉取代码,先要安装git

git clone https://github.com/keymetrics/pm2-docker-alpine
cd /data/pm2-docker-alpine/example-app

编写Dockerfile,WORKDIR:指定容器的工作目录?COPY:将当前目录下的文件拷贝至容器的/home/Service目录下?EXPOSE 3000:暴露容器内的端口为3000

[root@localhost example-app]# more Dockerfile
FROM keymetrics/pm2

# Bundle APP files
RUN mkdir -p /home/Service
WORKDIR /home/Service
COPY . /home/Service
#COPY src src/
#COPY package.json .
#COPY pm2.json .

# Install app dependencies
ENV NPM_CONFIG_LOGLEVEL warn
RUN npm install --production

# Show current folder structure in logs
#RUN ls -al -R
EXPOSE 3000
CMD [ "pm2-docker", "start", "pm2.json" ]

 构建容器镜像,注意最后有个点

docker build -t test_nodepm2 .

?查看构建成功的镜像

docker images

启动容器,并将容器的/home/Service映射到宿主机的/data/pm2-docker-alpine/example-app目录下,便于代码发布,修改

docker run --name mynodepm2 -d -v /data/pm2-docker-alpine/example-app:/home/Service -p 3000:3000 test_nodepm2

?查询容器的运行状态

在浏览器上访问容器所在的服务地址+暴露出来的端口,测试服务是否能正常

查询项目运行状态

docker exec -it 8205f9c2f6cd pm2 list
docker exec -it 8205f9c2f6cd pm2 monit
docker exec -it  pm2 monit	监控每个进程的CPU /使用情况
docker exec -it  pm2 list	列出托管流程
docker exec -it  pm2 show	获取有关流程的更多信息
docker exec -it  pm2 reload all	0秒停机时间重新加载所有应用程序

更多命令可以执行--help 查看

docker exec -it 8205f9c2f6cd pm2 --help

 如何进入容器内

docker exec -it 8205f9c2f6cd /bin/sh

修改容器内的时区为中国上海,用于和当前时间同步,注意以下所有操作在容器内进行操作

apk add -U tzdata
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
apk del tzdata

文章来源:https://blog.csdn.net/weixin_44692055/article/details/135018256
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。