一、koa-generator创建koa2项目
1、npm install -g koa-generator
2、找个喜欢的目录
3、koa2 -e koa2demo
4、npm install
5、npm start
4、浏览器访问 localhost:3000看效果
二、服务器安装docker
三、打包项目镜像
1、拉取node镜像至docker
默认已经通过各种手段将项目文件夹拷贝到服务器想要的位置,并且已经拉取了最新node
$ docker pull node
2、编写Dockerfile
1)在项目根目录下,创建 【Dockerfile】 文件,文件名必须是这个,不能改。
2)编辑Dockerfile文件,内容如下
$ vi Dockerfile
FROM node
COPY . /home/demo
WORKDIR /home/demo
EXPOSE 3000
CMD ["npm","start"]
解释下,第一个是指以node作为基础运行
第二个,将Dockerfile所在目录拷贝到docker里的 /home/demo 目录下,这个目录随便定
第三个,指定这个镜像运行时的目录为 /home/demo,这个目录同上即可
第四个,不知道,据说没什么用?
第五个,运行这个镜像时,执行什么CMD语句,在这里就是简单的项目启动指令
修改完毕后
:w 保存
:q 退出
3、创建镜像
在这个Dockerfile目录下,执行下面指令打包成docker镜像
$ docker build -t demo .
语法格式是 docker build -t name:[version] .
(这最后一个英文的小数点一定要记着!!)
-t :指定要创建的目标镜像名,自定义
. :Dockerfile 文件所在目录,可以指定Dockerfile 的绝对路径
创建完后执行
$ docker images
查看镜像上传是否成功
4、运行镜像
$ docker run -d -p 3000:3000 demo
-d 表示后台运行
-p 表示指定docker与服务器端口关系
demo 表示上一步打包镜像时,镜像的名称,如果是latest则可以不带版本号
5、调用接口验证程序是否正常运行
$ localhost:3000
四、意外插曲
1、centos连ifconfig等也没有,且虚拟机无法联网。
解决方案:重新安装centos,安装时不要选择最小配置
2、docker上运行正常,但仍无法访问
解决方案:由于防火墙没设置允许进出的端口,所以外网无法访问,此处设置为3000端口,其他端口同理
$ firewall-cmd --zone=public --add-port=3000/tcp --permanent
刷新生效
$ firewall-cmd --reload