使用 VS Code Docker 化 Node.js 应用

2025-05-28

使用 VS Code Docker 化 Node.js 应用

亲爱的程序员们,大家好!欢迎阅读我关于Node.jsDocker 的技术文章系列。希望你喜欢!

问题:

您之前从未使用过 Docker,并且是一名 JavaScript 开发者。您想了解如何将容器与 Node.js 结合使用。开始吧!

1. 设置

在本教程中,我将使用我最喜欢的编辑器 Visual Studio Code。您还需要安装Nodejs和 Docker。我使用的是 Windows 系统,因此我从这里下载了 Windows 版 Docker。

下一个命令创建一个名为 test-node-app 的新文件夹,然后创建 npm 包文件并在 VS Code 中打开文件夹。



mkdir test-node-app && cd test-node-app && npm init -y && code .


Enter fullscreen mode Exit fullscreen mode

另请安装 express 来创建服务器。



npm i express


Enter fullscreen mode Exit fullscreen mode

2. 创建基本 Node 应用

打开 package.json 文件并进行如下修改:



{
 "name": "test-node-app",
 "version": "1.0.0",
 "description": "",
 "main": "server.js",
 "scripts": {
   "start": "node server.js",
   "test": "echo \"Error: no test specified\" && exit 1"
 },
 "keywords": [],
 "author": "",
 "license": "ISC",
 "dependencies": {
   "express": "^4.17.1"
  }
}


Enter fullscreen mode Exit fullscreen mode

现在添加名为 server.js 的新文件:

const express = require("express");
const PORT = 8080;
const HOST = '0.0.0.0';
const app = express();
app.get("/", (req, res) => {
res.send("Hello from Node.js app \n");
});
app.listen(PORT, HOST, () => {
console.log(`Running on http://${HOST}:${PORT}`);
});
view raw server.js hosted with ❤ by GitHub
const express = require("express");
const PORT = 8080;
const HOST = '0.0.0.0';
const app = express();
app.get("/", (req, res) => {
res.send("Hello from Node.js app \n");
});
app.listen(PORT, HOST, () => {
console.log(`Running on http://${HOST}:${PORT}`);
});
view raw server.js hosted with ❤ by GitHub

超级基础应用已准备就绪。现在我们在本地测试一下。在 app 文件夹中运行以下命令:



npm start


Enter fullscreen mode Exit fullscreen mode

您应该在控制台中看到以下内容,并能够通过链接http://localhost:8080/访问服务器

3.准备Docker文件

要构建镜像,我们需要一个 Docker 文件。创建一个名为Dockerfile的文件



touch Dockerfile


Enter fullscreen mode Exit fullscreen mode

并将其粘贴到里面:



FROM node:8

# Create app directory
WORKDIR /usr/src/app

# Install app dependencies
# A wildcard is used to ensure both package.json AND package-lock.json are copied
COPY package*.json ./

RUN npm install

# Bundle app source
COPY . .

EXPOSE 8080

CMD [ "npm", "start" ]


Enter fullscreen mode Exit fullscreen mode

该文件告诉 docker 下载版本 8 的 Node.js,为应用程序创建目录,复制package.json文件,为 node_modules 运行npm install,告诉该应用程序要使用哪个端口,最后使用 npm start 运行它。

呃……很多啊?😮

我们还需要一个名为.dockerignore的文件。创建并粘贴以下内容:



node_modules
npm-debug.log


Enter fullscreen mode Exit fullscreen mode

4. 构建 Docker 镜像

首先,使用此命令构建我们的图像。



docker build -t test-node-app .


Enter fullscreen mode Exit fullscreen mode

等待它完成,现在我们就可以看到创建的新图像。



docker images


Enter fullscreen mode Exit fullscreen mode

如果您使用的是 VS Code,可以安装一个非常实用的Docker 扩展。它会在侧面板上添加一个按钮,用于打开 Docker 资源管理器。在这里,您可以查看所有可用的镜像和容器。您还可以在这里运行、停止和删除容器,这非常实用。

如果要删除图像,请运行以下命令:



docker rmi <image id>


Enter fullscreen mode Exit fullscreen mode

5. 运行 Docker 容器(最后)

是时候基于我们的镜像(隔离环境中的应用程序)运行一个容器了。重要的是我们需要告诉 Docker 如何映射端口。现在我们运行容器并将 8080 端口映射到 49165。



docker run -p 49165:8080 -d test-node-app


Enter fullscreen mode Exit fullscreen mode

这意味着我们现在可以通过此 URL http://localhost:49165/访问该应用程序

还有另一个非常有用的命令可以查看所有正在运行的容器:



docker ps


Enter fullscreen mode Exit fullscreen mode

您可以通过右键单击 VS Code Docker Extension 或使用此命令来停止容器:



docker stop <container id>


Enter fullscreen mode Exit fullscreen mode

现在,如果你docker ps再次运行,你将看不到正在运行的容器。如果你想查看已停止的容器,你需要 —all在命令中添加如下标志:



docker ps -a


Enter fullscreen mode Exit fullscreen mode

如果您还有一些疑问,您可以轻松参考此处的官方文档。


🚀 如果你从那篇文章中读到了什么有趣的内容,请点赞并关注我,我会分享更多文章。谢谢你,亲爱的程序员!😏

文章来源:https://dev.to/vguleaev/dockerize-a-node-js-app-with-vs-code-29c4
PREV
使用连接到 MongoDb 的 Node.js 后端对 React 应用程序进行 Docker 化
NEXT
Chrome 扩展程序 101