Katacoda Docker系列场景四:Dockerizing Node.js applications

本例子中主要介绍如何在容器中部署一个Node.js的应用

Step1 基础镜像

FROM node:10-alpine
RUN mkdir -p /src/app
WORKDIR  /src/app

使用WORKDIR指定工作目录

Step2 NPM的安装

为了减少构建时间,Docker将执行Dokcerfile的每一行结果都缓存在文件中。如果Dockerfile发生变化,这部分缓存将失效。

我们将运行npm install的缓存结果拷贝到容器中以加快构建。

COPY package.json /src/app/package.json
RUN npm install

若不想使用容器,可以在构建的构成中加上

docker build -no-cache=true

Step 3 配置应用

在安装完依赖后,我们将程序剩余部分拷贝到容器中。

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

Step 4 构建并启动容器

首先,应该构建一个镜像

docker build -t my-nodejs-app

构建完毕后,即可启动

docker run -d --name my-running-app -p 3000:3000 my-nodejs-app

之后,通过curl命令可以测试容器是否可以访问

curl http://docker:3000

此时docker表示容器的localhost

Step 5 环境变量

Docker镜像被设计的时候就考虑了,在不作任何改变且不用重新构建的前提下,其可以从一个环境迁移到另一个环境。

Docker环境变量在启动容器的时候可以被定义。例如,在Node.js的应用中,在生产环境运行时需要有一个NODE_ENV环境变量。使用-e选项 可以设定环境变量。

docker run -d --name my-production-running-app -e NODE_ENV=production -p 3000:3000 my-nodejs-app

参考资料

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值