Docker下部署Node运行环境.
大熊•
简介
最近正好在使用 NextJS 写一个新项目,采用了 node.js 作为后端。因为项目一直在多个服务器之间来回切换,同时考虑到之后可能会进行集群的部署,因此选择使用 Docker。Docker 是一个开源工具,能将一个 WEB 应用封装在一个轻量级,便携且独立的容器里,然后可以运行在几乎任何服务环境下。
编写 Dockerfile
Dockerfile
FROM node:14-alpine
# Install base packages and set timezone ShangHai
RUN apk update && apk add bash tzdata \
&& cp -r -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
CMD [ "node" ]
然后执行编译操作
docker build -t node-alpine .
进行构建容器镜像。这个时候可以看到了镜像 node-alpine:latest
利用这个镜像创建 Container. docker run --name node_test -it node-alpine
利用node-alpine
创建 node 应用。
docker run -p 9091:3000 -e NODE_ENV=production -e TZ="Asia/Shanghai" \
--restart=always --name node-test -v ~/data/Code/node/test:/www -d node-alpine sh -c "cd /www;node app.js"
这样一个 node 项目就部署好了。
其他相关知识
docker stats 命令用来显示容器使用的系统资源
。 也可以通过带上参数--no-stream 对结果进行一次性输出。
生成镜像的大小比较:
node-alpine:latest
122MB 可以看出文件小了很多。
node:latest
908MB 如果不进行优化包的大小。