環境:centos7.6 Docker version 18.06.0-ce
mkdir /data cd /data
拉取最新keymetrics/pm2:latest-alpine鏡像
docker pull keymetrics/pm2:latest-alpine
從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:latest-alpine # 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 <container-id> pm2 monit 監控每個進程的CPU /使用情況 docker exec -it <container-id> pm2 list 列出托管流程 docker exec -it <container-id> pm2 show 獲取有關流程的更多信息 docker exec -it <container-id> 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://hub.docker.com/r/keymetrics/pm2 如有疑問可以留言