Toolbx: จัดการคอนเทนเนอร์พัฒนาหลายตัวใน Fedora
การพัฒนา Linux ในปัจจุบันได้ก้าวไปไกลกว่าการติดตั้งทุกอย่างโดยตรงบนระบบของคุณ คุณสามารถเข้าถึงเครื่องมือที่ช่วยให้คุณสร้างสภาพแวดล้อมการพัฒนาที่แยกออกจากกันได้โดยไม่ต้องเผชิญกับความยุ่งยากของเครื่องเสมือนเต็มรูปแบบหรือความซับซ้อนในการจัดการคอนเทนเนอร์ด้วยตนเอง
นี่คือจุดที่ Fedora Toolbx เข้ามามีบทบาท – เครื่องมือที่ช่วยให้การสร้างสภาพแวดล้อมการพัฒนาที่อยู่ในคอนเทนเนอร์ง่ายขึ้น ในขณะที่ยังคงให้ประสบการณ์ที่ราบรื่นเหมือนการทำงานโดยตรงบนระบบโฮสต์ของคุณ
ในคู่มือนี้ คุณจะได้เรียนรู้วิธีการตั้งค่าและใช้งาน Fedora Toolbx เพื่อสร้างสภาพแวดล้อมการพัฒนาที่แยกออกเป็นส่วน ๆ ทำซ้ำได้ และจัดการได้ง่าย คุณจะได้สำรวจว่าการใช้ Toolbx ช่วยให้คุณทำงานในหลายโครงการที่มีการพึ่งพาซอฟต์แวร์ที่ขัดแย้งกันได้อย่างไร ในขณะที่ยังคงให้ระบบหลักของคุณสะอาดและเป็นระเบียบ
คู่มือนี้พาคุณผ่านพื้นฐานของ Toolbx ด้วยคำอธิบายที่เรียบง่ายและใช้งานได้จริง คุณจะเริ่มเรียนรู้ว่า Toolbx คืออะไรและทำไมคุณถึงจำเป็นต้องใช้ จากนั้นคุณจะไปยังการติดตั้งและตั้งค่าบนระบบ Fedora ของคุณ หลังจากนั้นคุณจะได้สร้างคอนเทนเนอร์การพัฒนาชิ้นแรกของคุณและเข้าใจวิธีการจัดการหลายสภาพแวดล้อมอย่างมีประสิทธิภาพ
ส่วนสุดท้ายจะแสดงวิธีการทำงานทั่วไปและแนวทางปฏิบัติที่ดีที่สุดที่จะช่วยให้คุณใช้ Toolbx ได้อย่างเต็มประสิทธิภาพในงานพัฒนาประจำวันของคุณ
หมายเหตุ: Toolbx ถูกพัฒนาขึ้น originalmente สำหรับ Fedora และทำงานได้ดีที่สุดบนระบบที่ใช้ Fedora เป็นหลัก แม้ว่าคุณสามารถใช้มันบนระบบปฏิบัติการ Linux รุ่นใหม่อื่น ๆ ได้เช่นกัน แต่คู่มือนี้เน้นไปที่ Fedora เป็นหลัก
ทำความเข้าใจ Toolbx: อะไรที่ทำให้มันแตกต่าง
ก่อนที่คุณจะเริ่มใช้งาน Toolbx สิ่งสำคัญคือคุณต้องเข้าใจว่ามันทำอะไรจริง ๆ และทำไมคุณถึงต้องการมันในกระบวนการพัฒนาของคุณ
Toolbx สร้างสภาพแวดล้อมแบบคอนเทนเนอร์โดยใช้ Podman ซึ่งเป็นเอนจินคอนเทนเนอร์ที่คล้ายกับ Docker แต่ทำงานโดยไม่ต้องใช้ daemon
สิ่งที่ทำให้ Toolbx โดดเด่นคือความสามารถในการผสานรวมคอนเทนเนอร์เหล่านี้เข้ากับระบบโฮสต์ของคุณได้อย่างแนบเนียน มอบประสบการณ์การพัฒนาที่ราบรื่นโดยไม่รู้สึกจำกัดเหมือนคอนเทนเนอร์แบบเดิม
เมื่อคุณทำงานกับคอนเทนเนอร์ Toolbx คุณจะได้รับประโยชน์สำคัญหลายประการที่ทำให้การพัฒนาของคุณง่ายขึ้น:
- การเข้าถึงไดเรกทอรีโฮมอย่างราบรื่น – ไดเรกทอรีโฮมของคุณจะถูกติดตั้งเข้ากับคอนเทนเนอร์โดยอัตโนมัติ ซึ่งหมายความว่าไฟล์ การตั้งค่า และคีย์ SSH ของคุณจะพร้อมใช้งานทันทีโดยไม่ต้องตั้งค่าเพิ่มเติมใด ๆ
- การเข้าถึงฮาร์ดแวร์โดยตรง – อุปกรณ์กราฟิก เสียง และอุปกรณ์อื่น ๆ สามารถใช้งานได้ทันทีโดยไม่ต้องตั้งค่าพิเศษหรือขั้นตอนการติดตั้งที่ซับซ้อน
- การรวมระบบโฮสต์ – คุณสามารถรันแอปพลิเคชันกราฟิก เข้าถึงเครือข่าย และโต้ตอบกับระบบของคุณได้ราวกับว่าคุณกำลังทำงานโดยตรงบนระบบโฮสต์ของคุณ แทนที่จะอยู่ภายในคอนเทนเนอร์
คุณสามารถมองว่า Toolbx เป็นการสร้าง “ฟองอากาศ” ที่ปกป้องรอบ ๆ เครื่องมือพัฒนาและการพึ่งพาของคุณ ภายในฟองอากาศนี้ คุณสามารถติดตั้งแพ็กเกจ ไลบรารี หรือเครื่องมือใด ๆ ที่คุณต้องการสำหรับโปรเจกต์เฉพาะโดยไม่กระทบต่อระบบหลักของคุณ
ในส่วนต่อไป คุณจะได้เรียนรู้วิธีติดตั้ง Toolbx บนระบบ Fedora ของคุณและเริ่มสร้างสภาพแวดล้อมการพัฒนาที่แยกออกมาเหล่านี้
การติดตั้ง Toolbx บน Fedora
บน Fedora Workstation (เวอร์ชัน 28 ขึ้นไป) toolbx จะถูกติดตั้งมาให้เรียบร้อยแล้ว และคุณสามารถตรวจสอบได้โดยการรันคำสั่งดังต่อไปนี้
toolbox --version
ถ้าคุณเห็นหมายเลขเวอร์ชัน แสดงว่าคุณพร้อมใช้งานแล้ว ถ้า Toolbx ยังไม่ได้ติดตั้ง คุณสามารถเพิ่มได้ด้วย:
sudo dnf install toolbox
นี่ก็เป็นขั้นตอนการติดตั้งเท่านั้น ไม่มีไฟล์คอนฟิกซับซ้อน ไม่มีการตั้งค่าเดมอน และไม่ต้องกังวลเกี่ยวกับการติดตั้งตัวช่วยอื่นเพิ่มเติม
การสร้างคอนเทนเนอร์ Toolbx แรกของคุณ
การสร้างคอนเทนเนอร์ Toolbx เป็นกระบวนการที่ตรงไปตรงมาที่คุณสามารถทำให้เสร็จได้ด้วยคำสั่งเพียงคำสั่งเดียว ซึ่งจะสร้างคอนเทนเนอร์เริ่มต้นตามเวอร์ชัน Fedora ปัจจุบันของคุณ
ตัวอย่างเช่น หากคุณกำลังใช้งาน Fedora 41 ระบบจะสร้างคอนเทนเนอร์ Fedora 41 ให้โดยอัตโนมัติ ครั้งแรกที่คุณเรียกใช้คำสั่งนี้ Toolbx จะดาวน์โหลดอิมเมจคอนเทนเนอร์ ซึ่งอาจใช้เวลาสักครู่ขึ้นอยู่กับความเร็วการเชื่อมต่ออินเทอร์เน็ตของคุณ
toolbox create
เมื่อสร้างคอนเทนเนอร์แล้ว คุณสามารถเข้ามันได้โดยรันคำสั่งต่อไปนี้:
toolbox enter
คุณจะสังเกตเห็นไอคอนคอนเทนเนอร์ขนาดเล็ก (⬢) ที่ปรากฏในพรอมต์ ซึ่งบ่งบอกว่าคุณอยู่ภายในคอนเทนเนอร์ Toolbx ของคุณ
แม้ว่าคุณจะทำงานในสภาพแวดล้อมที่ใช้คอนเทนเนอร์ คุณจะพบว่าไดเรกทอรีบ้านของคุณ ไฟล์ของคุณ และสภาพแวดล้อมส่วนใหญ่ของระบบโฮสต์ยังคงสามารถเข้าถึงได้อย่างง่ายดายเหมือนกับที่คุณใช้งานบนระบบหลักของคุณ
การใช้ Fedora เวอร์ชันต่างๆ
บางครั้งคุณจำเป็นต้องทำงานกับเวอร์ชัน Fedora เฉพาะ บางทีเซิร์ฟเวอร์การผลิตของคุณอาจใช้รุ่นเก่ากว่า หรือคุณต้องการทดสอบความเข้ากันได้กับเวอร์ชันล่าสุดก่อนอัปเกรดระบบหลักของคุณ
Toolbx ทำให้เรื่องนี้ง่ายขึ้นด้วยตัวเลือก --release หรือ -r:
toolbox create --release 39 fedora39-container
toolbox create --release 41 testing-fedora41
คุณยังสามารถใช้คอนเทนเนอร์จากเวอร์ชัน Fedora เก่าในขณะที่ใช้งานเวอร์ชันใหม่บนระบบโฮสต์ของคุณ ทำให้คุณมีวิธีที่สะดวกในการรักษาความเข้ากันได้กับสภาพแวดล้อมที่แตกต่างกัน
การทดสอบสภาพแวดล้อมคอนเทนเนอร์ของคุณ
เพื่อยืนยันว่าคุณอยู่ภายในคอนเทนเนอร์จริง ๆ และดูว่ามันแตกต่างจากระบบโฮสต์ของคุณอย่างไร คุณสามารถรันคำสั่งง่าย ๆ บางอย่าง เช่น ตรวจสอบว่าแพ็กเกจใดบ้างที่ติดตั้งอยู่
dnf list installed | wc -l
คุณสามารถตรวจสอบชื่อโฮสต์ของคอนเทนเนอร์ได้เช่นกัน:
hostname
เพื่อดูไดเร็กทอรีที่คุณกำลังทำงานอยู่และตรวจสอบว่าไดเร็กทอรีหลักของคุณสามารถเข้าถึงได้:
pwd
ls -la
คุณจะสังเกตว่าคุณอยู่ในไดเรกทอรีบ้านของคุณ โดยมีไฟล์และโฟลเดอร์ที่คุ้นเคยทั้งหมดปรากฏ แม้ว่าคุณจะอยู่ภายในคอนเทนเนอร์ก็ตาม
การติดตั้งซอฟต์แวร์ภายในคอนเทนเนอร์ของคุณ
ตอนนี้คุณอยู่ภายในคอนเทนเนอร์แล้ว คุณสามารถติดตั้งเครื่องมือพัฒนาโดยไม่ส่งผลกระทบต่อระบบโฮสต์ของคุณ ตัวอย่างเช่น หากคุณต้องการตั้งค่าสภาพแวดล้อมการพัฒนา Python:
sudo dnf install python3-pip python3-virtualenv git vim -y
หากคุณออกจากคอนเทนเนอร์และตรวจสอบระบบโฮสต์ของคุณ แพ็กเกจเหล่านี้จะไม่ถูกติดตั้งที่นั่น พวกมันมีอยู่เฉพาะในสภาพแวดล้อม Toolbx ของคุณเท่านั้น
ลองมาทำตัวอย่างอีกหนึ่งอันกับเครื่องมือพัฒนา Node.js กัน
sudo dnf install nodejs npm -y
node --version
npm --version
คำสั่งเหล่านี้จะติดตั้ง Node.js และ npm จากนั้นตรวจสอบการติดตั้งโดยดูเวอร์ชันของพวกมัน อีกครั้ง การติดตั้งนี้แยกออกจากระบบโฮสต์ของคุณโดยสมบูรณ์
เมื่อคุณทำงานในคอนเทนเนอร์เสร็จแล้ว คุณสามารถออกจากมันได้โดยการรันคำสั่งดังนี้:
exit
การสร้างคอนเทนเนอร์ที่มีชื่อสำหรับโครงการต่าง ๆ
แม้ว่าคอนเทนเนอร์เริ่มต้นจะใช้งานได้ดีสำหรับงานพัฒนาทั่วไป แต่คุณมักจะต้องมีคอนเทนเนอร์แยกต่างหากสำหรับโครงการหรือวัตถุประสงค์เฉพาะ การสร้างคอนเทนเนอร์ที่ตั้งชื่อช่วยให้คุณจัดระเบียบสภาพแวดล้อมการพัฒนาของคุณได้อย่างมีประสิทธิภาพมากขึ้นและเก็บงานของคุณแยกจากกัน
ในการสร้างคอนเทนเนอร์ที่มีชื่อ คุณใช้คำสั่ง toolbox create ตามด้วยชื่อที่คุณต้องการกำหนดให้คอนเทนเนอร์ของคุณ:
toolbox create python-dev
toolbox create nodejs-project
toolbox create rust-experiments
คำสั่งแต่ละคำสั่งเหล่านี้จะสร้างคอนเทนเนอร์ที่แตกต่างกันโดยมีสภาพแวดล้อมที่แยกตัวเอง เมื่อคุณต้องการทำงานในโครงการเฉพาะ คุณสามารถเข้าไปยังคอนเทนเนอร์นั้นโดยระบุชื่อด้วยคำสั่ง enter:
toolbox enter python-dev
วิธีการนี้ช่วยให้คุณสามารถรักษาสภาพแวดล้อมที่แยกออกจากกันอย่างสมบูรณ์สำหรับงานพัฒนาต่างๆ ได้ ตัวอย่างเช่น คอนเทนเนอร์ Python ของคุณสามารถรัน Python 3.12 พร้อมกับการขึ้นต่อสมัยใหม่ทั้งหมด ในขณะที่คอนเทนเนอร์โปรเจ็กต์เก่าอาจใช้ Python 3.8 พร้อมไลบรารีเวอร์ชันเก่า และไม่มีสภาพแวดล้อมใดรบกวนอีกสภาพแวดล้อมหนึ่งหรือมีผลกระทบต่อระบบโฮสต์ของคุณแต่อย่างใด
การรันแอปพลิเคชันกราฟิกจาก Toolbx
สิ่งที่ทำให้ Toolbx พิเศษจริง ๆ คือความสามารถในการรันแอปพลิเคชันกราฟิกได้อย่างราบรื่นจากภายในคอนเทนเนอร์ของคุณ แตกต่างจากคอนเทนเนอร์แบบดั้งเดิมที่ต้องมีการตั้งค่าและกำหนดค่า X11 forwarding ที่ซับซ้อน
Toolbx จัดการการรวมการแสดงผลทั้งหมดโดยอัตโนมัติ ทำให้รู้สึกเหมือนคุณกำลังรันแอปพลิเคชันโดยตรงบนระบบโฮสต์ของคุณ
เพื่อดูว่าสิ่งนี้ทำงานอย่างไรในทางปฏิบัติ ลองติดตั้งและรันโปรแกรมแก้ไขข้อความแบบกราฟิกเป็นตัวอย่างกัน
toolbox enter
sudo dnf install gedit -y
เมื่อการติดตั้งเสร็จสมบูรณ์ คุณสามารถเปิดตัวแก้ไขได้
gedit &
หน้าต่าง gedit จะเปิดขึ้นบนเดสก์ท็อปของคุณราวกับว่าคุณเปิดจากระบบโฮสต์ของคุณ คุณสามารถสร้าง แก้ไข และบันทึกไฟล์ได้ และทุกอย่างทำงานเหมือนกับที่คุณคาดหวังไว้
เครื่องหมายแอมเพอร์แซนด์ (&) ที่ท้ายคำสั่งจะทำให้โปรแกรมรันอยู่เบื้องหลัง ทำให้คุณสามารถใช้งานเทอร์มินัลต่อได้ในขณะที่แอปพลิเคชันกราฟิกยังเปิดอยู่
การจัดการหลายคอนเทนเนอร์ Toolbx
เมื่อคุณสร้างคอนเทนเนอร์มากขึ้นสำหรับโครงการต่างๆ คุณจะต้องมีวิธีในการติดตามและจัดการพวกมันอย่างมีประสิทธิภาพ Toolbx มีคำสั่งหลายอย่างที่ช่วยให้คุณดู ควบคุม และจัดระเบียบสภาพแวดล้อมที่ถูกคอนเทนเนอร์ของคุณได้
การลงรายการคอนเทนเนอร์ของคุณ
ในการดูคอนเทนเนอร์ทั้งหมดที่คุณสร้างขึ้น คุณต้องรันคำสั่ง list:
toolbox list
จากผลลัพธ์นี้ คุณสามารถดูได้ว่าคอนเทนเนอร์ใดกำลังทำงานอยู่และคอนเทนเนอร์ใดที่ได้ออกไปแล้ว
กำลังตรวจสอบรายละเอียดตู้คอนเทนเนอร์
หากคุณต้องการข้อมูลที่ละเอียดมากขึ้นเกี่ยวกับคอนเทนเนอร์เฉพาะ คุณสามารถใช้ Podman โดยตรงได้ เนื่องจากคอนเทนเนอร์ของ Toolbx เป็นคอนเทนเนอร์ Podman ปกติ:
podman ps -a
คุณยังสามารถตรวจสอบคอนเทนเนอร์เฉพาะเพื่อดูการตั้งค่าทั้งหมดของมันได้:
podman inspect python-dev
การหยุดและเริ่มคอนเทนเนอร์ที่กำลังรัน
เมื่อคุณทำงานในคอนเทนเนอร์เสร็จและต้องการคืนทรัพยากรของระบบ คุณสามารถหยุดมันได้โดยตรง
podman stop python-dev
คุณสามารถตรวจสอบได้ว่าคอนเทนเนอร์หยุดทำงานแล้วโดยการรันคำสั่งแสดงรายการอีกครั้ง:
toolbox list
คุณจะเห็นว่าสถานะของคอนเทนเนอร์เปลี่ยนจาก «กำลังทำงาน» เป็น «หยุดทำงาน»
หากคุณมีคอนเทนเนอร์ที่ปัจจุบันถูกหยุดและคุณต้องการใช้งานมันอีกครั้ง คุณเพียงแค่ เข้าสู่ มัน และ Toolbx จะเริ่มมันให้คุณโดยอัตโนมัติ:
toolbox enter python-dev
การลบคอนเทนเนอร์ที่คุณไม่ต้องการอีกต่อไป
เมื่อเวลาผ่านไป คุณอาจมีการสะสมคอนเทนเนอร์ที่คุณไม่ได้ใช้งานอีกต่อไป และคอนเทนเนอร์เหล่านี้ก็ใช้พื้นที่ดิสก์บนระบบของคุณ เมื่อคุณมั่นใจแล้วว่าคุณไม่จำเป็นต้องใช้คอนเทนเนอร์ใดอีก คุณสามารถลบมันออกโดยสมบูรณ์โดยใช้คำสั่ง rm:
toolbox rm python-dev
ก่อนที่จะลบคอนเทนเนอร์ Toolbx จะขอให้คุณยืนยันการกระทำ เพียงพิมพ์ y เพื่อยืนยัน และ Toolbx จะลบคอนเทนเนอร์พร้อมกับแพ็กเกจและการตั้งค่าทั้งหมดที่คุณติดตั้งภายในนั้น
ข้อควรทราบสำคัญ: การลบคอนเทนเนอร์จะลบแพ็กเกจทั้งหมด การตั้งค่าระบบ และข้อมูลใด ๆ ที่เก็บอยู่ในระบบไฟล์ของคอนเทนเนอร์ แต่ไฟล์ในโฟลเดอร์บ้านของคุณจะยังคงปลอดภัยอย่างสมบูรณ์
หลังจากลบแล้ว คุณสามารถตรวจสอบการใช้งานดิสก์ของคอนเทนเนอร์ อิมเมจ และวอลุ่มทั้งหมดของคุณได้ด้วย:
podman system df
หากคุณต้องการเพิ่มพื้นที่ดิสก์โดยการลบคอนเทนเนอร์ที่หยุดทำงานทั้งหมดและอิมเมจที่ไม่ได้ใช้งาน คุณสามารถรันคำสั่งทำความสะอาดได้ดังนี้:
podman system prune
บทสรุป
Toolbx ช่วยให้คุณจัดการสภาพแวดล้อมการพัฒนาบนระบบ Fedora ของคุณได้อย่างทรงพลังโดยไม่ต้องยุ่งยากกับเครื่องเสมือนแบบดั้งเดิม
ตลอดคู่มือนี้ คุณได้เรียนรู้วิธีสร้างคอนเทนเนอร์แยก ทำงานกับแอปพลิเคชันกราฟิก และจัดการสภาพแวดล้อมการพัฒนาหลายชุดในขณะที่รักษาระบบหลักให้สะอาด
คุณพบว่าคู่มือนี้มีประโยชน์หรือไม่? แบ่งปันประสบการณ์ คำถาม หรือเคล็ดลับของคุณในความคิดเห็นด้านล่าง ผลตอบรับของคุณช่วยให้เราปรับปรุงเนื้อหาและช่วยเหลือผู้อ่านคนอื่น ๆ ในการใช้งาน Toolbx ของพวกเขา









