返回

Docker容器实践部署

后端

Docker 部署 Node.js 应用实践

Docker 是一种开源的容器引擎,可让您在隔离的容器中打包和运行应用程序。容器是一种轻量级的虚拟化技术,它与虚拟机不同,容器共享主机操作系统的内核,因此它们更轻量级、更便携。

Docker 非常适合部署 Node.js 应用,因为它可以轻松地将您的应用与依赖项打包在一起,并将其部署到任何地方。此外,Docker 还提供了多种工具和服务,可以帮助您管理和监控您的容器化应用。

前提条件

在开始之前,您需要确保满足以下先决条件:

  • 一台云服务器,推荐使用 Ubuntu 18.04 LTS 或更高版本。
  • Docker 已安装在您的服务器上。
  • Node.js 已安装在您的服务器上。
  • 一个简单的 Node.js 应用。

创建 Node.js 应用

如果您还没有一个 Node.js 应用,可以创建一个简单的应用来演示如何使用 Docker 部署。您可以创建一个简单的 Express 应用,如下所示:

const express = require('express');

const app = express();

app.get('/', (req, res) => {
  res.send('Hello, world!');
});

app.listen(3000, () => {
  console.log('Server is listening on port 3000');
});

将此代码保存到一个名为 app.js 的文件中。

创建 Dockerfile

接下来,您需要创建一个 Dockerfile,该文件将告诉 Docker 如何构建您的应用镜像。Dockerfile 的基本语法如下:

FROM <base-image>

RUN <command>

CMD <command>

在我们的例子中,我们将使用 node:16-slim 作为基础镜像,并添加一个 RUN 命令来安装依赖项,以及一个 CMD 命令来启动应用。以下是我们的 Dockerfile:

FROM node:16-slim

RUN npm install express

CMD ["node", "app.js"]

将此代码保存到一个名为 Dockerfile 的文件中。

构建镜像

现在,您可以使用以下命令构建您的应用镜像:

docker build -t my-node-app .

此命令将在您的当前目录中查找 Dockerfile,并使用它来构建一个名为 my-node-app 的镜像。

运行容器

构建镜像后,您可以使用以下命令运行一个容器:

docker run -p 3000:3000 my-node-app

此命令将创建一个新的容器并运行 my-node-app 镜像。-p 3000:3000 参数将容器的 3000 端口映射到主机的 3000 端口。这将允许您通过访问 http://localhost:3000 来访问您的应用。

访问您的应用

现在,您可以在浏览器中访问 http://localhost:3000 来访问您的应用。您应该会看到 "Hello, world!" 的消息。

总结

本文介绍了如何在云服务器上通过 Docker 容器运行一个简单的 Node.js 应用。您学习了如何创建 Node.js 应用、创建 Dockerfile、构建镜像和运行容器。您还学习了如何访问您的应用。