最近在做一个需求时,需要搭一个字符串加密的在线接口,本次采用node编写接口,docker部署应用
node和docker的安装过程就不概述了,需要注意的是docker默认拉取镜像会很慢,建议配置国内的镜像仓库,如阿里的容器服务阿里容器服务
1. 编写接口
参加一个test文件夹,在文件夹下安装需要的包,前3个包为koa框架的包,crypto-js为加密组件的包
mkdir test
cd test
npm install koa
npm install koa-router
npm install koa-body
npm install crypto-js
创建一个index.js文件,编写如下代码
const Koa = require("koa");
const Router = require("koa-router");
const body = require("koa-body")
const CryptoJs = require('crypto-js')
const app = new Koa();
const router = new Router();
router.post("/encrypt", async function(ctx) {
// 获取post请求的body参数
var status = {content : ctx.request.body}
console.log(status.content)
bodyContent = status.content
// 将js对象转为json,测试方法
var word = JSON.stringify({
"distributor": ""
})
var infoValue = "test"
// 设置响应状态码和数据
ctx.response.body = {"info": infoValue}
ctx.status = 200
})
app.use(body())
app.use(router.routes()).use(router.allowedMethods());
// 监听本地3000端口
app.listen(3000);
编写完运行node index.js,访问127.0.0.1:3000/encrypt
2. 将项目文件夹上传到服务器,本地docker运行可跳过这一步
3. 编写Dockerfile文件
在刚刚的test文件夹下创建Dockerfile文件
sudo touch Dockerfile
在Dockerfile编写如下脚本
FROM node
# FROM node:10
WORKDIR /app
RUN npm install
COPY . /app
EXPOSE 3000
CMD node ./index.js
在test文件夹下执行下面的命令,根据Dockerfile构建镜像
sudo docker build -t encryption:v1 .
执行成功后可看到构建好的镜像
4. 运行镜像
sudo docker run --name test3 -d -p 3040:3000 encryption:v1
运行成功后可通过127.0.0.1:3040/encryption访问接口
5. docker命令
docker images 查看镜像
docker ps -a 查看所有的容器
docker stop 容器id 关闭容器
docker start 容器id 开启容器
docker rm 容器id 删除容器