在Docker Node环境下安装包

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 进入查看

相关推荐
SCBAiotAigc1 天前
2026.5.1:`DockerDesktop must be owned by an elevated account`错误的解决办法
人工智能·docker·具身智能
AI木马人1 天前
9.人工智能实战:GPU 服务如何上 Kubernetes?从单机部署到 K8s + NVIDIA Device Plugin + HPA 的生产级改造
人工智能·容器·kubernetes
身如柳絮随风扬1 天前
使用 Docker 部署禅道并实现自动化部署——从项目搭建到运维自动化的完整指南
运维·docker·自动化
eRTE XFUN1 天前
docker下搭建redis集群
redis·docker·容器
一只小bit1 天前
Docker 存储卷:本地文件与容器内部文件建立绑定关系
运维·docker·容器
都在酒里1 天前
在公共服务器上构建 RK3588 SDK 的纯净 Docker 方案
运维·服务器·docker
jeCA EURG1 天前
docker离线安装及部署各类中间件(x86系统架构)
docker·中间件·系统架构
身如柳絮随风扬1 天前
使用 Docker 部署 Jenkins 并实现自动化部署 —— 从零到一的 CI/CD 实践指南
docker·自动化·jenkins
就叫飞六吧1 天前
docker快速启动sqlserver实例并自动测试shell脚本
docker·容器·sqlserver
皮皮冰燃2 天前
docker-18-WSL中安装docker并部署flask服务
docker·容器·flask