NodeJS docker部署 
docker 
介绍 
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低
安装 
可以以ubuntu为例,一步步按照的文档,安装完docker
bash
sudo docker ps -a #查看所有运行的dockernode.js 
node项目 
以打包后的项目为准
在新建一个项目目录,放置打包后的代码
1.创建一个Dockerfile的文件 
在项目目录的同层级创建文件
bash
touch Dockerfile写入内容,比如我们的项目
bash
#拉取node镜像
FROM node:14
#创建项目目录
RUN mkdir -p /opt/offical
#docker镜像的运行目录
WORKDIR /opt/offical
#拷贝代码到目录
COPY /offical /opt/offical
#安装依赖
RUN npm install
#暴露端口
EXPOSE 3000
#运行项目
CMD [ "npm", "start" ]这是一个最简单的dockerfile,都可以参考这个文件来创建docker镜像
2.创建.dockerignore 文件 
bash
node_modules
npm-debug.log这个类似于gitignore文件,忽略某些文件或目录
3.构建镜像 
bash
 sudo docker build -t mynodeapp .查看你已经构建的镜像
bash
sudo docker images4.运行镜像 
bash
sudo docker run -e TZ=Asia/Shanghai -d -p 10010:3000 mynodeapp使用 -d 模式运行镜像将以分离模式运行 Docker 容器,使得容器在后台自助运行。开关符 -p 在容器中把一个公共端口导向到私有的端口,请用以下命令运行你之前构建的镜像
有时候时区还需要调整,记得加一下
查看已经运行的docker
bash
sudo docker ps -a5.我们的发布 
一般我们自己项目的发布目前还是采用了docker的发布,采用了build image
一般的操作步骤:
bash
#查看当前所有运行的docker
sudo docker ps -a 
#将当前运行的docker停止,并删除
sudo docker stop xxxx 
sudo docker rm xxxx
#到项目目录下
cd /data/XXX/xxx-admin
#删除目前的项目目录
sudo rm -rf xxxx
#上传项目文件
sudo rz 
#解压项目文件
sudo unzip xxxx
#build 镜像
sudo docker build -t mynodeapp .
#运行 镜像
sudo docker run -e TZ=Asia/Shanghai -d -p 10010:3000 mynodeapp
#查看docker镜像
sudo docker images 
#删除旧的docker 镜像
sudo docker image rm xxxx指南 
还发现了一篇文章,讲的挺好的,是关于对镜像的优化
