在离线环境中使用 Docker 部署 Node.js 项目,可以按照以下步骤操作:
1. 准备 Node 镜像
在装好有网络的环境中,先拉取所需的镜像并保存为node.tar
文件
bash
docker pull node # 拉取最新的node
docker save -o node.tar node
2. 在 Node.js 项目根目录创建 Dockerfile 文件
Dockerfile
# 使用官方 Node.js 镜像作为基础镜像
FROM node
# 设置工作目录
WORKDIR /usr/src/app
# 先安装依赖,避免每次更改源代码时都重新安装
# COPY package*.json ./
# RUN npm install
# 将当前目录的内容复制到容器中的工作目录
COPY . .
# 暴露容器的 3000 端口
EXPOSE 3000
# 启动应用
CMD ["node", "app.js"]
创建好 Dockerfile
后的项目目录结构如下:
3. 打包 Node.js 项目
bash
tar -czvf my-nodejs-project.tar.gz my-nodejs-project/
4. 传输文件到 Linux 离线环境
将 node.tar
和 my-nodejs-project.tar.gz
文件传输到 Linux 离线环境
5. 在离线环境中加载 Node 镜像
bash
docker load -i node.tar
6. 解压 Node.js 项目文件
bash
tar -xzvf my-nodejs-project.tar.gz
7. 构建 Docker 镜像
bash
docker build -t my-nodejs-app .
docker images # 查看镜像
8. 后台运行 Docker 容器
注意: 端口需要与项目中的端口和Dockerfile文件暴露端口保持一致。
bash
docker run -d -p 主机端口:容器端口 my-nodejs-app
docker ps # 查看容器状态
docker exec -it my-nodejs-app /bin/bash # 进入容器