在软件开发中,Docker 已经成为了一个非常强大的工具,它可以帮助开发者轻松地打包、分发和部署应用。
下面我们将通过创建一个简单的 Node.js 应用来展示如何在本地环境部署自己的 Docker 镜像服务。
本文使用的环境版本:
- Docker: 24.0.7
- Node.js: v20.11.1
- npm: 10.2.4
第一步:搭建测试服务
首先,我们需要一个服务来做实验。在这里,我们选择的是 Node.js —— 一个轻量级且高效的 JavaScript 运行环境。别急,即便你不是一个 Node.js 开发者,我保证这个过程既简单又有趣!
打开 cmd (是的,就是你的命令提示符),然后输入以下命令:
mkdir demo & cd demo
npm init -y & type nul > index.js
创建了一个新文件夹并在其中初始化了一个新的 Node.js 项目。然后,我们在 index.js 里写入一段小小的程序,用来启动一个简易的 HTTP 服务器:
const http = require('http');
http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('Hello Worldn');
}).listen(3000);
现在,如果你运行这段代码,你的电脑就变身为了一台服务器!
第二步:开启 Docker 的世界
有了这个简易的服务,我们就可以开始使用 Docker 了。首先,需要一个 Dockerfile
,这是 Docker 用来构建镜像的配方文件。让我们使用下面的内容来填充它:
FROM node:20
WORKDIR /usr/app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["npm", "start"]
别忘了创建 .dockerignore
文件,以避免将无关的本地文件拷贝到 Docker 镜像中:
node_modules
npm-debug.log
.env
第三步:打包与运行
现在让我们把这些配置包装起来:
docker build -t bobostudio/local-api:v1 .
如果魔法生效,就会看到 Docker 开始构建我们的镜像。完成之后,运行:
docker run -d --name local-api-demo -p 3000:3000 bobostudio/local-api:v1
-d 后台运行服务
–name 新建的实例名称
-p 端口映射,暴露外部的端口
bobostudio/local-api:v1 已经打包好的镜像
这条命令会让你的应用浮现于 Docker 容器之中,无论机器上安装了什么,只要有 Docker,你的应用都会按预想的方式运行。
让我们来核查一下服务
访问你的服务器 http://localhost:3000
,迎接你的将是熟悉的 “Hello World”。
总结
就是这样!利用 Docker,我们搭建了一个简单的 Node.js 服务,并通过映容器内的端口来向外界展示。你学到了基础的 Dockerfile 编写技巧,掌握了如何在 Docker 中构建和部署自己的服务。
只要跟随几个简单的步骤,你也可以在 Docker 的宏大世界中创造出你自己的服务。快去尝试吧