最小、标准的 docker run 命令。
✅ 最简单正确写法(推荐)
docker run -d \--name node20 \-v $(pwd):/app \-w /app \node:20-alpine \tail -f /dev/null
说明(关键点)
-
-d:后台运行 -
-v $(pwd):/app:映射当前目录 -
-w /app:工作目录 -
tail -f /dev/null:保持容器不退出(关键)
Node 镜像默认没有常驻进程,不加这句容器会立刻退出
📌 进入容器使用(你后面肯定要用)
docker exec -it node20 sh
验证:
node -v
📌 如果你想映射指定目录(例如 Jenkins workspace)
docker run -d \--name node20 \-v /var/jenkins_home/workspace/myapp:/app \-w /app \node:20-alpine \tail -f /dev/null
❗ 常见错误(提前帮你避坑)
❌ 直接这样跑(容器会秒退)
docker run -d node:20-alpine
原因:
-
没有前台进程
-
Docker 判定容器“执行完成”
❌ 用 bash(alpine 没有 bash)
docker exec -it node20 bash
✅ 正确:
docker exec -it node20 sh
🧠 可选:如果你只是给 Jenkins 用
其实 不用长期后台跑,直接:
docker run --rm \-v $(pwd):/app \-w /app \node:20-alpine \node -v
更干净。
一句话总结
node:20-alpine 后台运行 = 映射目录 + 一个“不退出”的占位命令
你这个需求已经是最小 Docker 用法了。