前言
Docker 是一个开源的应用程序容器引擎,可以轻松地将应用程序的开发、部署和运行环境打包在容器中,隔离性好且易于管理。本文将介绍如何基于 Docker 进行 Node.js web 应用的打包和发布,让开发人员更加方便地进行开发和交付。
环境准备
在开始之前,需要先安装 Docker 的运行环境,可以在官网上下载安装包,也可以在终端中使用包管理器进行安装。这里以 Mac 为例,使用 Homebrew 进行安装:
$ brew install docker
安装完成后,可以通过运行以下命令来检验 Docker 是否安装成功:
$ docker version
运行结果如下:
-- -------------------- ---- ------- ------- ------ ------ - --------- -------- ------- --- -------- ---- -- -------- -------- --- ------- ------- ------ --- --- - -------- ---- -------- ------------ -------- ------- ------------- ---- ------- ------ ------ - --------- ------- -------- ------- --- -------- ---- -------- ------- ----- -- -------- -------- --- ------- ------- ------ --- --- - -------- ---- -------- ----------- ------------- ----- ----------- -------- ----- ---------- ---------------------------------------- ----- -------- ----- ---------- ----------------- ------------ -------- ------ ---------- -------
编写 Node.js web 应用
在进行 Docker 打包之前,首先需要编写一个 Node.js web 应用,这里给出一个简单的示例。
创建一个新目录并进入该目录:
$ mkdir myapp && cd myapp
初始化一个新的 npm 项目,通过该命令可以创建一个新的
package.json
文件:$ npm init -y
安装 Express 和 body-parser 模块:
$ npm install express body-parser --save
创建一个新的
app.js
文件,该文件是控制整个应用的核心文件:-- -------------------- ---- ------- ----- ------- - ------------------- ----- ---------- - ----------------------- ----- --- - ---------- --------------------------- ------------ ----- ---- -- - --------------- --------- --- ----- ------ - ---------------- -- -- - ------------------- ------- -- ---- --------------------------- ---
运行该应用:
$ node app.js
打开浏览器,访问
http://localhost:3000/
,可以看到输出了 "Hello World!" 字符串。
使用 Docker 进行打包和发布
在上一步中,我们已经编写了一个 Node.js web 应用,现在我们将使用 Docker 对该应用进行打包,并发布到 Docker Hub 以供其他人使用。
创建 Dockerfile 文件
在项目根目录下创建一个新文件,名为
Dockerfile
,该文件是 Docker 打包的配置文件。添加以下内容:
-- -------------------- ---- ------- - ---- ------- -- -- ---- ------- - ------ ------- ---- - ------ ---- ------------- -- --- --- ------- ------------ - ------------ ---- - - - ---------- --- - ------ ------- -
该文件首先使用
node:12
镜像作为基础镜像,创建工作目录/app
,安装应用依赖,拷贝应用代码,最后在容器启动时运行应用。
打包 Docker 镜像
在命令行中进入项目目录。
使用命令执行 Docker 镜像打包:
$ docker build -t username/myapp .
username
为 Docker Hub 用户名,myapp
为镜像名。
推送 Docker 镜像到 Docker Hub
在命令行中登录 Docker Hub:
$ docker login
输入用户名和密码进行验证。
将刚才打包的 Docker 镜像推送到 Docker Hub 上:
$ docker push username/myapp
注意将
username
和myapp
替换为自己的 Docker Hub 用户名和镜像名。
运行 Docker 镜像
在命令行中运行 Docker 镜像:
$ docker run -p 3000:3000 -d username/myapp
-p
参数用于将容器内部的 3000 端口映射到本地的 3000 端口,-d
参数用于在后台运行容器。如果一切顺利,可以通过访问
http://localhost:3000/
来测试是否成功启动了 Node.js web 应用。
总结
通过本篇文章的介绍,我们了解了 Docker 的基本概念和使用方法,掌握了基于 Docker 进行 Node.js web 应用打包和发布的流程。Docker 的使用可以极大地简化开发和交付流程,提高开发人员的效率。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64c9efcd5ad90b6d0418b8a8