docker-nodejs

初识Docker - 搭建nodejs前端环境

基础nodejs代码

  • https://github.com/dreambo8563/koaLearning
    这个项目的代码是我自己学习基本Koa的时候随便写的,就是几个简单接口和基本的中间件应用

    建立 Dockerfile

    FROM node:alpine
    WORKDIR /usr/src/app
    COPY package.json /usr/src/app
    RUN apk add --update git
    RUN npm install

    COPY . /usr/src/app
    EXPOSE 3000
    CMD ["npm","start"]

    解读配置

    • 获取node alpine的镜像 node:alpine. 这个版本的体积超小
    • 设置代码目录
    • 复制package.json
    • 添加git 这个工具,因为这个项目里有的包在linux上有问题,所有他会自动去git上拉源码
    • 运行npm install 安装各种依赖
    • 复制当前目录下源码 到工作目录
    • 暴露自己的3000端口在container里
    • 最后运行 npm start

配置独立的redis (这个项目有代码要用redis)

官方镜像 https://hub.docker.com/_/redis/

根据文档创建实例

  • docker run –name myReids -d redis

    myRedis是我给这个container的name

生成koa项目的image

  • docker build -t koalearning . //需在koa项目下执行
    运行koa项目 link redis
  • docker run -p 3000:3000 –name koa –link myRedis:redis -d koalearning

这里加-p 的意思是把container里的 3000端口映射到本地的3000上

到此环境搭建完成

  1. 必须先启动redis
  2. 然后再启动koa项目 因为有link的缘故
  3. 这是纯手动的容器间建立联系的方式,后面会改用docker-compose