Docker Init สร้าง Dockerfiles และ Compose ในคำสั่งเดียว
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