Node.js 如何创建Dockerfile

Node.js 如何创建Dockerfile

Dockerfile是一个文本文档,其中包含用户可以在命令行上调用的所有命令,以组装镜像。它类似于一个将多个命令集合在一个文档中以完成单个任务的shell脚本。

先决条件 :在Dockerize任何应用程序之前,您需要根据操作系统安装Docker Engine。请前往https://docs.docker.com/engine/install/以安装Docker Engine,并根据您的操作系统下载它。

命令 :编写Dockerfile时我们必须了解的基本命令。

  • WORKDIR: 用于指定工作路径,即在镜像文件中,我们当前位于/app
  • COPY: 用于将项目中的文件复制到镜像文件中。
  • RUN: 现在有了Node.js环境的镜像文件,以及package.json档案,我们可以执行npm install来安装所有工具的依赖项,并将它们打包到镜像文件中
  • EXPOSE: 在使用容器时,您可以将其想象为一台封闭的机器,因此我们需要设置与外部的通信通道。在这里,我们设置了端口8081,这是我们常用的端口。
  • CMD: 用于设置启动镜像的方式。
  • PULL: 用于从Docker资源库中添加文件。
  • VOLUME: 用于创建一个目录挂载点,以访问和存储持久数据。
  • ARG: 用于定义构建时的变量。
  • DOCKER BUILD: 用于从Dockerfile创建镜像的构建命令。
  • DOCKER PUSH: 用于将镜像推送到Docker资源库。

让我们通过创建一个简单的DockerFile并创建一个示例的Express应用程序来演示。

步骤1: 通过Express框架创建一个示例的Node.js应用程序。

npm init
JavaScript

步骤2: 让我们通过运行以下命令,将Express框架作为第一个依赖项添加进来。

npm i express -s
JavaScript

Node.js 如何创建Dockerfile

步骤3: 我们可以创建一个名为 server_init.js 的文件,其中包含简单的HTTP服务器。

server_init.js

// Load express module using `require` directive 
let express = require('express') 
let app = express() 
  
// Define request response in root URL (/) 
app.get('/', function (req, res) { 
  res.send('Dockerize the node app') 
}) 
  
// Launch listening server on port 8081 
app.listen(8081, function () { 
  console.log('app listening on port 8081') 
})
JavaScript

运行应用程序的步骤:

打开终端并输入以下命令。

node server_init.js
JavaScript

Node.js 如何创建Dockerfile

在浏览器中访问http://localhost:8081/以查看它。

Node.js 如何创建Dockerfile

现在让我们为上述示例创建一个Dockerfile:

步骤1: 让我们继续在项目的根目录下创建一个Dockerfile,用于我们的演示应用。

touch Dockerfile
JavaScript

步骤2: 打开 Dockerfile 文件并添加下面的步骤。每个 Dockerfile 文件必须以 FROM 指令开始。这是因为你需要一个起点来构建你的镜像。你可以从公共注册表中拉取任何有效的镜像来启动你的 Docker 镜像。你从中启动的镜像被称为基础镜像。在我们的情况下,让我们在 Dockerfile 中添加 FROM node:12.16-alpine。

FROM node:12.16-alpine
JavaScript

步骤3: 在容器中创建目录,我们将使用该目录来存储文件、运行NPM和启动我们的应用程序:

RUN mkdir node
COPY . ./node
WORKDIR ./node/
JavaScript

步骤4: 通过以下命令安装所有 NodeJs 依赖项

RUN npm install 
JavaScript

步骤5: 在该应用示例中,我们将我们的Node.js应用程序运行在8081端口上。

EXPOSE 8081
JavaScript

步骤6: 通过以下命令启动我们的NodeJs应用程序。

CMD node server_init.js
JavaScript

Node.js 如何创建Dockerfile

步骤7: 构建Docker镜像。运行我们的应用程序的命令是:

docker build -t hello-world .
JavaScript

Node.js 如何创建Dockerfile

步骤8: 我们可以找到我们创建的docker镜像。

docker image ls
JavaScript

Node.js 如何创建Dockerfile

使用以下命令来运行该应用程序

docker run -p 8081:8081 hello-world
JavaScript

Node.js 如何创建Dockerfile

输出: 当我们运行写在Dockerfile中的Docker构建步骤时,将会执行。打开浏览器,访问localhost:8081。

Node.js 如何创建Dockerfile

将镜像推送到容器注册表: 我们可以将镜像推送到我们的公共或私有注册表。只需三个简单的步骤将镜像推送到Dockerhub。

docker login --username username --password yourpassword
docker tag localimagename username/repositoryname:tagname
docker push username/repositoryname:tagname
JavaScript

Node.js 如何创建Dockerfile

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册