使用 Docker 部署 Node 应用
|
容器将应用与环境打包整合,解决了应用外部依赖的痛点,打包后通过窗口可方便地部署到任意环境,用过就知道很香。 创建示例应用以 NestJS 为例,先创建一个示例应用。 $ npm i -g @nestjs/cli 然后 app.controller.ts 中添加如下 action: @Get('ping')
测试一把会得到如下返回,证明我们的 app 一切正常: $ curl localhost:3000/ping Docker 介绍先了解 Docker 的两个核心概念:
Docker 安装$ brew install --cask docker 如果已经安装过,升级可使用如下命令: $ brew install --cask docker 然后在程序目录或 Spotlight 中找到并启动 Docker,系统状态栏中会有个鲨鱼图标。 启动后命令行工具已经可用,检查安装: $ docker —version 使用通过 $ docker help 查看具体命令的帮助可在 $ docker help run 打包生成镜像Docker 中打包后的应用存在于镜像中,其中便包含了应用及依赖的环境。将这个镜像文件进行分发就可以在其他地方加载运行,实现了在新环境中方便部署,无须再关心外部依赖。 创建 Dockerfile使用 Docker 打包应用需先创建 Dockerfile,其中包含指导 Docker 如何打包的指令。 $ touch Dockerfile 一般我们会基于已有镜像来创建自己的镜像,比如这里打包 Node 应用,我们会使用一个已经包含 Node 环境的镜像作为源。通过如下 FROM node:14 创建应用所在的目录: # Create app directory 将文件复制到目标路径,然后进行 npm 包依赖的安装: # Install app dependencies 复制应用中的源码文件: # Bundle app source 依赖和源码都好后,可以编译 Nest 应用,生成 dist 目录了: npm run build 可以把镜像看作一个封闭环境,外界要与其中的应用进行交互,比如这里打包的是 Nest 服务,要能正常访问 Nest 中我们编写的 HTTP 接口,就需要 image 向外暴露端口。 因为默认 Nest 应用起的 3000 端口,这里就将其暴露, EXPOSE 3000 最后一条指令,指导 Docker 启动 Nest 应用: CMD [ "node", "dist/main" ] 所以完整的 Dockerfile 目前长这样了: FROM node:14 # Create app directory
|
|
The text was updated successfully, but these errors were encountered: |
使用 Docker 部署 Node 应用的更多相关文章
- 使用 Docker 部署 Node 应用 - 镜像文件尺寸的优化
前面 使用 Docker 部署 Node 应用 一文中完成了镜像的创建和运行,不过生成的镜像还有些粗糙,需要进一步优化. 镜像的优化 通过 docker images 看到简单的一个 node 服务端 ...
- docker部署node.js
1.dockerfile FROM node:14.16.0 RUN mkdir -p /var/log/lily/ RUN mkdir -p /opt/node # 工作目录 WORKDIR /op ...
- docker部署nodejs项目应用
之前笔者弄了一套nestjs项目放在自己服务器上,并用pm2管理进程. 现在要把pm2停止,尝试一下用docker容器,那么首先要安装docker 一.安装docker 由于笔者服务器的系统是cent ...
- Docker部署Elasticsearch集群
http://blog.sina.com.cn/s/blog_8ea8e9d50102wwik.html Docker部署Elasticsearch集群 参考文档: https://hub.docke ...
- docker 部署cassandra
摘要 本文主要介绍在redhat7 平台,利用docker 部署cassandra 集群,除了介绍基本的部署步骤,另外主要 讨论类似于cassandra 这种分布式集群系统部署 docker如何进行网 ...
- 【原创】运维基础之Docker(2)通过docker部署zookeeper nginx tomcat redis kibana/elasticsearch/logstash mysql kafka mesos/marathon
通过docker可以从头开始构建集群,也可以将现有集群(配置以及数据)平滑的迁移到docker部署: 1 docker部署zookeeper # usermod -G docker zookeeper ...
- 一步步学会用docker部署应用(nodejs版)
一步步学会用docker部署应用 docker是一种虚拟化技术,可以在内核层隔离资源.因此对于上层应用而言,采用docker技术可以达到类似于虚拟机的沙盒环境.这大大简化了应用部署,让运维人员无需陷入 ...
- 教你使用docker部署淘宝rap2服务
什么是rap2 先来说说起因,在上一个星期的分享会上,谈到前后端联调上,有同事提到了rap2,特意去了解了一下,觉得使用这个东西来进行前后端的接口联调来真是太方便了,对比我们之前公司内部开发的API ...
- 【Docker江湖】之docker部署与理解
转载请注明出处:http://blog.csdn.net/gamer_gyt 博主微博:http://weibo.com/234654758 Github:https://github.com/thi ...
随机推荐
- 【小技巧】启动Tomcat 提示端口被占用 怎么办?一句命令解决
windows环境: 方法1: 1.win+r 打开黑界面 2.输入命令 netstat -ano|findstr 8080 3.输入命令 taskkill /pid xxxx /f Linux环境: ...
- ZwQuerySystemInformation枚举内核模块
在内核中通过调用此函数来枚举windows系统中已经加载的内核模块. NTSTATUS ZwQuerySystemInformation ( SYSTEM_INFORMATION_CLASS Syst ...
- Java安全之FastJson JdbcRowSetImpl 链分析
Java安全之FastJson JdbcRowSetImpl 链分析 0x00 前言 续上文的Fastjson TemplatesImpl链分析,接着来学习JdbcRowSetImpl 利用链,Jdb ...
- JDBC核心技术(获取数据库链接、数据库事务、数据库链接池)
@ 目录 前言 数据的持久化 Java数据存储技术 JDBC介绍 JDBC体系结构 获取数据库链接 Driver接口 加载注册JDBC驱动 获取数据库链接 数据库链接方式(实例) 方式一:代码中显示出 ...
- 利用jink的驱动软件j-flash 合并两个hex的方法,bootloader+app -(转载)
第一步:先打开第一个hex文件, 第二步:选择 "Merge data file",合并文件 第三步:两个工程有可能地址相同,会有如下提示:(如果在编译的时候设置好Flash的地址 ...
- shell进阶之tree、pstree、lsof命令详解
一.tree命令详解: 主要功能是创建文件列表,将所有文件以树的形式列出来 -a 显示所有文件和目录. -A 使用ASNI绘图字符显示树状图而非以ASCII字符组合. -C 在文件和目录清单加上色彩, ...
- cgic: CGI的C函数库-(转自COS)
下载回源码包以后,就3个文件:cgic.c 函数库capture.c 一个很简单的CGI例子,仅仅输出两行提示文字cgictest.c 一个演示读取form表单数据的CGI例子 首先在 ...
- 文件包含之包含了Linux文件描述符
0x00 原理 文件描述符是内核为了高效管理已被打开的文件所创建的索引,用于指向被打开的文件,所有执行I/O操作的系统调用都通过文件描述符. 翻译成人话- 可以认为是指向文件的一个指针,如果有文件 ...
- 行业资讯 | Android WebView 致安卓应用闪退,mPaaS 助你规避这波 Bug
根据外媒 9to5 Google 报道,3 月 23 日几个小时内,大量安卓用户遇到一些安卓应用连续闪退的情况,有人发现卸载安卓系统 WebView 就可以停止闪退.目前,谷歌已经发布了应用崩溃问题的 ...
- android Room数据库仓库模式