Node.js 使用 Docker 部署
开始之前,我假设你的电脑上已经安装了Docker,如果没有安装过,请自行搜索相应的安装方式。
一、创建容器
首先打开Docker Store,在首页的搜索框抛入node
寻找我们需要的合适镜像。
点击进去之后,看到右上角的拉取镜像命令,复制它到你的命令行终端中执行一下,即可将当前镜像安装到你的设备上。
1 |
|
接下来利用此镜像创建一个新容器
1 |
|
docker run
,创建一个新容器-i
,让Docker的标准输入保持打开,允许用户与容器进行交互-d
,在后台运行Docker-t
,让Docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上8080
,我们一会儿要在nodejs服务中使用的端口8888
,Docker用来暴露给外部访问的端口bin/bash
,启动Docker的bash终端
不出意外的话,现在你已经成功的启动了一个Docker,运行此命令可以看到当前正在运行的所有Docker
1 |
|
二、编写nodejs应用
假设我们打算使用express
来启动一个静态服务器,用来输出一行文本Hello World
。
首先执行npm init
初始化一个package.json
文件,然后执行npm install express --save
,安装express
依赖包
1 |
|
执行vi service.js
,编写nodejs代码:
1 |
|
注意:此处的PORT
要与上面我们创建Docker时用的8080
端口保持一致。
编写完毕,可以先在本机执行node service.js
测试一下,看服务是否正常。
三、将nodejs应用复制到Docker里
执行docker ps
命令,查看Docker的CONTAINER ID
1 |
|
docker cp ./ cc53e1cefcf5:/var/node
1 |
|
docker attach cc53e1cefcf5
ls /var/node
1 |
|
Error: Path not specified
1 |
|
docker run -v /var/data:/home/data -i -t node /bin/bash
```
最后在Docker里执行node server.js
启动服务,然后在浏览器中访问http://localhost:8080
,就可以看到Hello World
了
四、参考链接
Node.js 使用 Docker 部署
https://www.xysdavid.cn/2023/12/05/Node-js-使用-Docker-部署/