Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

192 Commits
 
 
 
 
 
 

Repository files navigation

🐳 OS Docker บน GitHub Codespaces

โปรเจกต์นี้รวบรวม Script สำหรับการติดตั้งและจำลองระบบปฏิบัติการ (OS) ทั้ง Windows และ Linux ผ่าน Docker Container บน GitHub Codespaces ช่วยให้คุณสามารถเรียกใช้งาน OS ผ่านเว็บเบราว์เซอร์ได้จากทุกที่ ไม่ว่าจะเป็นบนคอมพิวเตอร์หรือโทรศัพท์มือถือ

📋 สิ่งที่ต้องเตรียม

ก่อนเริ่มใช้งาน แนะนำให้ตั้งค่า Github Codespaces ดังนี้เพื่อให้ระบบทำงานได้อย่างเสถียร:

  1. สร้าง Repository
  2. Machine Type: แนะนำให้เลือกสเปกขั้นต่ำ 4 Core, 16 GB RAM (สูงสุด 32 GB)
    • เหตุผล: เพื่อความลื่นไหลในการใช้งาน OS และไม่กินโควต้า CPU มากเกินความจำเป็น

🚀 ขั้นตอนการติดตั้ง

เลือกคำสั่งตามระบบปฏิบัติการที่คุณต้องการติดตั้ง:

🪟 Windows

mkdir user && cd user
wget -O windows.yml https://raw.githubusercontent.com/MCFirsting/OS-Docker-Install-TH/refs/heads/main/windows.yml
sudo docker-compose -f windows.yml up

🐧 Linux

mkdir user && cd user
wget -O linux.yml https://raw.githubusercontent.com/MCFirsting/OS-Docker-Install-TH/refs/heads/main/linux.yml
sudo docker-compose -f linux.yml up

Note: เมื่อรันคำสั่งเสร็จสิ้น ให้ไปที่แท็บ Ports แล้วเลือกพอร์ต 8006 เพื่อเปิดหน้าจอ Desktop ผ่านเบราว์เซอร์

🎮 การใช้งานและการควบคุม

การเข้าใช้งาน

  • Web Browser: เข้าผ่านพอร์ต 8006 (แนะนำสำหรับการตั้งค่าเบื้องต้น)
  • Remote Desktop (RDP): หากต้องการประสิทธิภาพที่ดีขึ้น (โดยเฉพาะบนมือถือ) แนะนำให้ใช้แอปพลิเคชัน Remote Desktop เชื่อมต่อเข้ามายัง Codespace

คำสั่งจัดการ Container

หากต้องการหยุดพักหรือเริ่มใช้งานใหม่ ให้ใช้คำสั่งดังนี้ (รันในโฟลเดอร์ user):

การทำงาน คำสั่ง Windows (Bash) คำสั่ง Linux (Bash)
🟢 เริ่ม (Start) cd user && sudo docker-compose -f windows.yml start cd user && sudo docker-compose -f linux.yml start
🔴 หยุด (Stop) cd user && sudo docker-compose -f windows.yml stop cd user && sudo docker-compose -f linux.yml stop
🔄 รีสตาร์ท (Restart) cd user && sudo docker-compose -f windows.yml restart cd user && sudo docker-compose -f linux.yml restart

⚙️ การปรับแต่งขั้นสูง

คุณสามารถแก้ไขไฟล์ .yml เพื่อปรับแต่งการใช้งานได้ ดังนี้:

การแชร์ไฟล์กับเครื่อง Host

หลังจากการติดตั้งเสร็จสิ้น จะมีโฟลเดอร์ชื่อ Shared ปรากฏบนหน้าจอ Desktop ของคุณ ซึ่งสามารถใช้สำหรับแลกเปลี่ยนไฟล์กับเครื่อง Host ได้

หากต้องการกำหนดโฟลเดอร์บนเครื่อง Host เพื่อใช้งานในส่วนนี้ ให้เพิ่ม bind mount ต่อไปนี้ลงในไฟล์ compose ของคุณ:

volumes:
  -  ./example:/shared

ให้เปลี่ยน path ตัวอย่าง ./example เป็น path ของโฟลเดอร์ที่คุณต้องการแชร์ ซึ่งโฟลเดอร์นั้นจะไปปรากฏให้เห็นในชื่อ Shared

วิธีตั้งค่า Username และ Password

โดยค่าเริ่มต้น ระบบจะสร้างผู้ใช้ชื่อ Docker และรหัสผ่าน admin มาให้

หากคุณต้องการเปลี่ยนชื่อผู้ใช้และรหัสผ่านระหว่างการติดตั้ง สามารถกำหนดค่าในไฟล์ compose ได้ดังนี้:

environment:
  USERNAME: "bill"
  PASSWORD: "gates"

วิธีเลือกภาษาของ Windows

โดยค่าเริ่มต้น ระบบจะดาวน์โหลด Windows เวอร์ชันภาษาอังกฤษ

แต่คุณสามารถระบุภาษาอื่นที่ต้องการดาวน์โหลดได้ โดยเพิ่มตัวแปร environment ชื่อ LANGUAGE ลงในไฟล์ compose ของคุณ:

environment:
  LANGUAGE: "French"

วิธีเลือกรูปแบบแป้นพิมพ์

หากคุณต้องการใช้รูปแบบแป้นพิมพ์ (Keyboard Layout) หรือการตั้งค่าท้องถิ่น (Locale) ที่ไม่ใช่ค่าเริ่มต้นของภาษาที่คุณเลือก คุณสามารถเพิ่มตัวแปร KEYBOARD และ REGION ได้ดังนี้:

environment:
  REGION: "en-US"
  KEYBOARD: "en-US"

วิธีติดตั้งไฟล์ Image ที่กำหนดเอง

หากต้องการดาวน์โหลดไฟล์ ISO Image นอกเหนือจากที่มีให้ (Unsupported) ให้ระบุ URL ของไฟล์นั้นลงในตัวแปร environment ที่ชื่อ VERSION

environment:
  VERSION: "https://example.com/win.iso"

สามารถระบุ URL ของไฟล์ ISO ได้ (เช่นจาก Internet Archive)

วิธีรันสคริปต์หลังการติดตั้ง

หากต้องการรันสคริปต์ของคุณเองหลังจากติดตั้งเสร็จสิ้น ให้สร้างไฟล์ชื่อ install.bat และนำไปวางไว้ในโฟลเดอร์รวมกับไฟล์อื่นๆ ที่จำเป็น (เช่น โปรแกรมที่ต้องการติดตั้งเพิ่มเติม)

จากนั้นให้ทำการ Bind mount โฟลเดอร์ดังกล่าวลงในไฟล์ compose ดังนี้:

volumes:
  -  ./example:/oem

โฟลเดอร์ตัวอย่าง ./example จะถูกคัดลอกไปยัง C:\OEM และไฟล์ install.bat ที่อยู่ภายในจะถูกเรียกใช้งาน (Execute) ในขั้นตอนสุดท้ายของการติดตั้งอัตโนมัติ

❓ คำถามที่พบบ่อย (Q&A)

ถาม: สามารถเล่นเกมหรือลงโปรแกรมหนักๆได้ไหม?

  • ตอบ: ได้เฉพาะบางโปรแกรมที่ไม่กินทรัพยากรมาก เนื่องจากไม่มี GPU แยก หากต้องการเล่นเกมแนะนำให้ใช้แอปพลิเคชันช่วย เช่น Winlator (สำหรับบางอุปกรณ์) แต่ประสิทธิภาพอาจไม่สูงมาก

ถาม: ติดตั้ง Windows แล้วทำไมไม่มีเสียง?

  • ตอบ: การเชื่อมต่อแบบ RDP มักไม่มี Driver เสียงติดมาด้วย แนะนำให้ติดตั้ง VB-Cable และ Restart เครื่อง 1 ครั้ง ส่วนใหญ่เสียงจะทำงานผ่าน RDP ได้เลยโดยไม่ต้องติดตั้งเพิ่ม

ถาม: ระยะเวลาการใช้งานจำกัดหรือไม่?

  • ตอบ: Codespaces มีโควต้าจำกัด (ปกติประมาณ 120 Core-hours หรือ 60 ชม. สำหรับเครื่อง 2 Core) ควรใช้งานประมาณวันละ 2 ชั่วโมง
  • ข้อควรจำ: ต้องหยุดการทำงาน Codespace ทุกครั้งหลังเลิกใช้งาน หากโควต้าหมดจะต้องรอรอบบิลเดือนถัดไปจึงจะใช้งานได้อีกครั้ง

⚠️ ข้อควรระวัง

ข้อมูลใน Container อาจสูญหายได้หากเกิดข้อผิดพลาดหรือ Codespace ถูกลบ (Codespace ที่ไม่ได้ใช้งานนาน 30 วันจะถูกลบอัตโนมัติ)

  • ห้าม เก็บข้อมูลสำคัญ รูปภาพ หรือวิดีโอส่วนตัวไว้ใน Container เพียงอย่างเดียว
  • แนะนำ ให้สำรองข้อมูลผ่าน Cloud Storage สม่ำเสมอ

โปรเจกต์ต้นฉบับของทาง Dockur ถูกกฎหมายหรือไม่?

ใช่ครับ โปรเจกต์ต้นฉบับประกอบด้วยโค้ดที่เป็น Open Source ทั้งหมด และไม่มีการแจกจ่ายเนื้อหาที่มีลิขสิทธิ์ใดๆ ดังนั้นภายใต้ข้อกฎหมายที่เกี่ยวข้องทั้งหมด โปรเจกต์ต้นฉบับจึงถือว่าถูกกฎหมาย และทางเรานำมาเผยแพร่บทความจากโปรเจกต์ต้นฉบับเป็นภาษาไทยเท่านั้น ไม่มีส่วนเกี่ยวข้องในการทำงานของระบบปฏิบัติการต่างๆ

About

การติดตั้งระบบปฏิบัติการ OS Docker

Resources

Stars

7 stars

Watchers

1 watching

Forks

Used by

Contributors