Node.js在Windows下推荐使用Docker安装,之前没有尝试过,记录下ChatGPT总结的过程
需求如下:
本地已下载有一个node:24-alpine的镜像,需要创建一个容器,在容器中使用目录E:\Code\Javascript\sample-apps-master的内容执行npm install sample-apps
分析需求,也即需要在容器里挂载本机目录 E:\Code\Javascript\sample-apps-master
Dockerfile 和命令行示例如下:
1. Dockerfile 示例
# 使用本地 node:24-alpine 镜像
FROM node:24-alpine
# 设置工作目录
WORKDIR /app
# 挂载卷会在运行时指定,本地文件会映射到 /app
# 所以这里不需要 COPY
# 默认命令(可选)
CMD ["sh"]
说明:
-
WORKDIR /app→ 设置容器工作目录 -
因为本地目录要挂载进
/app,所以不需要COPY -
默认启动 shell,方便调试
2. 命令行运行容器并执行 npm install
方法一:进入容器交互式执行
bash
docker run -it --rm `
-v E:\Code\Javascript\sample-apps-master:/app `
-w /app `
node:24-alpine sh
进入容器后执行:
bash
npm install sample-apps
方法二:一条命令直接安装(无需手动进入容器)
bash
docker run -it --rm `
-v E:\Code\Javascript\sample-apps-master:/app `
-w /app `
node:24-alpine sh -c "npm install sample-apps"
解释:
| 参数 | 作用 |
|---|---|
-v E:\Code\Javascript\sample-apps-master:/app |
挂载本机目录到容器 /app |
-w /app |
设置容器工作目录 |
sh -c "npm install sample-apps" |
启动容器后执行命令 |
-
--rm→ 容器执行完毕后自动删除 -
-it→ 交互终端,方便看到 npm 输出
3. 可选调试方式(保持容器运行)
如果你希望安装完成后容器不退出方便查看日志:
bash
docker run -it --rm `
-v E:\Code\Javascript\sample-apps-master:/app `
-w /app `
node:24-alpine sh -c "npm install sample-apps && tail -f /dev/null"
-
tail -f /dev/null→ 防止容器立即退出 -
可以用
docker exec -it <container_id> sh进入查看