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 如果不进行优化包的大小。

关于我
loading