# Docker และ Containerization (Node.js / NestJS) > Dockerfile สำหรับ Node.js/NestJS, docker-compose (Node + DB + Redis), multi-stage builds, การปรับแต่ง image, .dockerignore, volumes, networks, พื้นฐานการ orchestrate container - 25 คำถามสัมภาษณ์ - Mid-Level - [คำถามสัมภาษณ์: Node.js / NestJS](https://sharpskill.dev/th/technologies/node-nestjs/interview-questions.md) ## 1. Docker คืออะไร? **คำตอบ** Docker คือแพลตฟอร์ม containerization ที่บรรจุแอปพลิเคชันและ dependency ของมันลงใน container ที่แยกออกจากกัน ต่างจากเครื่องเสมือนที่จำลอง hardware ทั้งหมด Docker จะแชร์ kernel ของ OS host ทำให้มันเบาและเร็ว การใช้ Docker รับประกันว่าแอปพลิเคชันทำงานเหมือนกันทั้งใน development, staging และ production ## 2. ความแตกต่างหลักระหว่าง Docker container กับเครื่องเสมือนคืออะไร? **คำตอบ** Docker container แชร์ kernel ของ OS host และจำลองเฉพาะ user space เท่านั้น ทำให้มันเบามาก (ไม่กี่ MB) และเริ่มทำงานในไม่กี่วินาที ส่วน VM จำลอง hardware ทั้งหมดและรวม OS เต็มรูปแบบ (หลาย GB) ใช้เวลาเริ่มทำงานเป็นนาที ดังนั้น container จึงมีประสิทธิภาพมากกว่าสำหรับ microservices และ CI/CD ## 3. Dockerfile มีบทบาทอะไร? **คำตอบ** Dockerfile คือไฟล์ข้อความที่มีคำสั่งสำหรับ build Docker image แต่ละคำสั่ง (FROM, COPY, RUN, CMD) จะสร้าง layer ใน image มันกำหนดสภาพแวดล้อม runtime, dependency และคำสั่งเริ่มต้น Dockerfile ที่ปรับแต่งดีจะใช้ layer caching และ multi-stage builds เพื่อลดขนาด image สุดท้าย ## มีอีก 22 คำถาม - คำสั่ง Dockerfile ใดที่กำหนด base image? - ความแตกต่างระหว่าง CMD กับ ENTRYPOINT ใน Dockerfile คืออะไร? สมัครฟรี: https://sharpskill.dev/th/login ## หัวข้อสัมภาษณ์ Node.js / NestJS อื่นๆ - [พื้นฐาน Node.js](https://sharpskill.dev/th/technologies/node-nestjs/interview-questions/nodejs-fundamentals.md): 20 คำถาม, Junior - [Core API ของ Node.js](https://sharpskill.dev/th/technologies/node-nestjs/interview-questions/nodejs-core-apis.md): 25 คำถาม, Junior - [การเขียนโปรแกรมแบบอะซิงโครนัส](https://sharpskill.dev/th/technologies/node-nestjs/interview-questions/asynchronous-programming.md): 25 คำถาม, Junior - [พื้นฐาน Express.js](https://sharpskill.dev/th/technologies/node-nestjs/interview-questions/express-basics.md): 20 คำถาม, Junior - [พื้นฐาน NestJS](https://sharpskill.dev/th/technologies/node-nestjs/interview-questions/nestjs-fundamentals.md): 23 คำถาม, Junior - [การออกแบบ REST API](https://sharpskill.dev/th/technologies/node-nestjs/interview-questions/rest-api-design.md): 20 คำถาม, Junior - [การตรวจสอบความถูกต้องและ DTO](https://sharpskill.dev/th/technologies/node-nestjs/interview-questions/validation-dto.md): 20 คำถาม, Junior - [เอกสาร API และ Contract](https://sharpskill.dev/th/technologies/node-nestjs/interview-questions/api-documentation.md): 20 คำถาม, Junior - [การจัดการข้อผิดพลาด](https://sharpskill.dev/th/technologies/node-nestjs/interview-questions/error-handling.md): 20 คำถาม, Junior - [การทดสอบหน่วย (Unit Testing)](https://sharpskill.dev/th/technologies/node-nestjs/interview-questions/testing-unit.md): 20 คำถาม, Junior - [การจัดตารางงาน](https://sharpskill.dev/th/technologies/node-nestjs/interview-questions/scheduling-cron.md): 15 คำถาม, Junior - [Module และ DI ของ NestJS](https://sharpskill.dev/th/technologies/node-nestjs/interview-questions/nestjs-modules-di.md): 20 คำถาม, Mid-Level - [การกำหนดค่าและการจัดการสภาพแวดล้อม](https://sharpskill.dev/th/technologies/node-nestjs/interview-questions/configuration-environment.md): 20 คำถาม, Mid-Level - [การยืนยันตัวตนด้วย JWT](https://sharpskill.dev/th/technologies/node-nestjs/interview-questions/authentication-jwt.md): 25 คำถาม, Mid-Level - [การให้สิทธิ์และ RBAC](https://sharpskill.dev/th/technologies/node-nestjs/interview-questions/authorization-rbac.md): 20 คำถาม, Mid-Level - [ฐานข้อมูลด้วย TypeORM](https://sharpskill.dev/th/technologies/node-nestjs/interview-questions/database-typeorm.md): 30 คำถาม, Mid-Level - [Prisma ORM](https://sharpskill.dev/th/technologies/node-nestjs/interview-questions/prisma-orm.md): 25 คำถาม, Mid-Level - [Middleware และ Interceptor](https://sharpskill.dev/th/technologies/node-nestjs/interview-questions/middleware-interceptors.md): 20 คำถาม, Mid-Level - [การอัปโหลดไฟล์](https://sharpskill.dev/th/technologies/node-nestjs/interview-questions/file-upload.md): 15 คำถาม, Mid-Level - [WebSockets](https://sharpskill.dev/th/technologies/node-nestjs/interview-questions/websockets.md): 20 คำถาม, Mid-Level - [GraphQL กับ NestJS](https://sharpskill.dev/th/technologies/node-nestjs/interview-questions/graphql-basics.md): 25 คำถาม, Mid-Level - [การทดสอบแบบ End-to-End](https://sharpskill.dev/th/technologies/node-nestjs/interview-questions/testing-e2e.md): 20 คำถาม, Mid-Level - [การแคชด้วย Redis](https://sharpskill.dev/th/technologies/node-nestjs/interview-questions/caching-redis.md): 20 คำถาม, Mid-Level - [คิวด้วย Bull](https://sharpskill.dev/th/technologies/node-nestjs/interview-questions/queues-bull.md): 20 คำถาม, Mid-Level - [DevOps, Logging และ CI/CD](https://sharpskill.dev/th/technologies/node-nestjs/interview-questions/logging-monitoring.md): 25 คำถาม, Mid-Level - [ไมโครเซอร์วิส](https://sharpskill.dev/th/technologies/node-nestjs/interview-questions/microservices.md): 30 คำถาม, Senior - [แนวทางปฏิบัติที่ดีที่สุดด้านความปลอดภัย](https://sharpskill.dev/th/technologies/node-nestjs/interview-questions/security-best-practices.md): 25 คำถาม, Senior - [ประสิทธิภาพและการ Deploy บน Cloud](https://sharpskill.dev/th/technologies/node-nestjs/interview-questions/performance-optimization.md): 30 คำถาม, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/th/technologies/node-nestjs/interview-questions/docker-containerization