Docker ได้พัฒนา docker init ซึ่งเป็นคำสั่งใหม่ในส่วนของ Command-Line Interface (CLI) เพื่อทำให้การเพิ่ม Docker เข้าไปในโปรเจคเป็นเรื่องง่ายขึ้นมาก (ผมพึ่งรู้จัก -_-)

การเริ่มต้นด้วย docker init

เมื่อเราใช้คำสั่ง docker init ในโปรเจค ระบบจะช่วยสร้างไฟล์ที่จำเป็นสำหรับการใช้งาน Container โดยมีไฟล์ต่างๆ ที่สร้างขึ้นอย่างเช่น

  • .dockerignore: ไฟล์ที่ระบุว่าไฟล์ใดบ้างที่ไม่ควรรวมอยู่ใน Docker image
  • Dockerfile: ไฟล์ที่กำหนดขั้นตอนในการสร้าง Docker image รวมถึงการติดตั้งไลบรารีและการตั้งค่าต่างๆ
  • compose.yaml: ไฟล์สำหรับจัดการ Container หลายตัวในครั้งเดียว
  • README.Docker.md: เอกสารที่ให้ข้อมูลเกี่ยวกับการใช้งาน Docker ในโปรเจค

การใช้งาน docker init

ตัวอย่างการใช้งานสร้าง docker ให้สำหรับ nodejs โปรเจค

$ docker init

Welcome to the Docker Init CLI!

This utility will walk you through creating the following files with sensible defaults for your project:
  - .dockerignore
  - Dockerfile
  - compose.yaml
  - README.Docker.md

Let's get started!

? What application platform does your project use? Node
? What version of Node do you want to use? 20.12.2
? Which package manager do you want to use? npm
? What command do you want to use to start the app? npm start
? What port does your server listen on? 8080

✔ Created → .dockerignore
✔ Created → Dockerfile
✔ Created → compose.yaml
✔ Created → README.Docker.md

→ Your Docker files are ready!
  Review your Docker files and tailor them to your application.
  Consult README.Docker.md for information about using the generated files.

! Warning → The following files required to run your application were not found. Create them before running your application:
  - package.json
  - package-lock.json

What's next?
  Start your application by running → docker compose up --build
  Your application will be available at http://localhost:8080

เพียงเราพิมพ์คำสั่ง docker init จากนั้นให้เราเลือกภาษาที่เราต้องการสร้างเช่น Golang, Nodejs, JAVA, PHP เป็นต้น แล้วจะมีคำถามมาเพิ่มอีกนิดหน่อยก็ตอบไปตามที่เราอยากได้ เพียงเท่านี้ก็จะได้ไฟล์สำหรับ docker มาใช้งานแล้ว สะดวกดี...

ทำไมต้องใช้ docker init?

  • ประหยัดเวลา: ไม่ต้องเสียเวลาสร้างไฟล์ต่างๆ ด้วยตัวเอง เพียงแค่รันคำสั่งเดียวก็เสร็จเรียบร้อย
  • เหมาะสำหรับมือใหม่: หากยังไม่คุ้นเคยกับ Docker คำสั่งนี้จะช่วยให้เข้าใจโครงสร้างพื้นฐานได้ง่ายขึ้น
  • เพิ่มความสะดวก: สามารถเลือกสร้างไฟล์ตามประเภทของโปรเจคได้ เช่น สำหรับภาษา Go หรือโปรเจคทั่วไป

Ref: https://docs.docker.com/reference/cli/docker/init