เมื่อพูดถึงอนาคตของเทคโนโลยี ช่างเทคนิคที่ช่ำชองหลายคนรู้ว่าเวอร์ชวลไลเซชันและคอนเทนเนอร์เป็นเส้นทางนั้นมาก ซึ่งช่วยให้แอปพลิเคชันและบริการมีความปลอดภัยมากขึ้น และสามารถจัดการได้อย่างง่ายดายผ่านบริการอื่นๆ ที่อนุญาตให้ทำสแนปชอต เทมเพลต และปรับแต่งได้มากกว่าที่คุณได้รับจากโมเดลแบบเซิร์ฟเวอร์เดียวต่อแอปพลิเคชัน อย่างไรก็ตาม ยังไม่ชัดเจนว่าคุณควรเริ่มต้นใช้งานเวอร์ชวลไลเซชันและคอนเทนเนอร์อย่างไร เราได้กล่าวถึงการจำลองเสมือนบน Linux, Windows และ macOS มาหลายครั้งแล้ว แต่คอนเทนเนอร์มีแนวโน้มที่จะแตกต่างจากสัตว์ร้ายเล็กน้อย บทความนี้จะนำเสนอคู่มือสำหรับผู้เริ่มต้นใช้งาน Podman บน Linux ซึ่งเป็นเครื่องมือที่ยอดเยี่ยมสำหรับการจัดวางคอนเทนเนอร์
คอนเทนเนอร์คืออะไร
คอนเทนเนอร์เป็นเครื่องเสมือนขนาดเล็ก - แต่สำหรับแอปพลิเคชันเท่านั้น พวกเขาใช้แนวคิดเดียวกันมากมายและมีคุณสมบัติด้านความปลอดภัยและความสะดวกในการใช้งานเหมือนกัน แต่มีขนาดเล็กกว่ามากและช่วยให้สร้างภาพและแจกจ่ายแอปพลิเคชันได้ง่าย นี่คือสิ่งที่ Flatpaks และ Snaps ใช้เป็นหลัก คุณสามารถเริ่มเห็นความคล้ายคลึงกัน:หนึ่งโปรแกรม หลายแอปพลิเคชันที่ทำงานในสภาพแวดล้อมที่แยกออกมา
พอดแมนคืออะไร
พวกเราหลายคนเคยได้ยินเกี่ยวกับ Docker ซึ่งเป็น OG ของเอ็นจิ้นคอนเทนเนอร์ Podman เป็นเอ็นจิ้นคอนเทนเนอร์ที่คล้ายกันซึ่งใช้โครงสร้างที่คล้ายกันมากกับ Docker โดยมีข้อแตกต่างที่สำคัญสองสามข้อ
หนึ่งคือ Podman นั้นไม่มีภูตในขณะที่ Docker อาศัยภูต ซึ่งหมายความว่าคอนเทนเนอร์ Podman สามารถทำงานได้โดยไม่ต้องมีการอนุญาตระดับรูท ทำให้มีความปลอดภัยและความยืดหยุ่นมากขึ้น คอนเทนเนอร์ที่ทำงานในระดับผู้ใช้หมายความว่าผู้ใช้สามารถเห็นเฉพาะคอนเทนเนอร์ของตนและไม่มีใครเห็น Podman ใช้ทรัพยากรระบบน้อยลงเนื่องจากสถาปัตยกรรมที่เรียบง่าย ซึ่งทำให้ได้รับประสบการณ์ที่สนุกสนานยิ่งขึ้น
สถาปัตยกรรมแบบ daemonless นำไปสู่สิ่งที่เรียกว่าคอนเทนเนอร์แบบไม่มีรูท เป็นแนวคิดที่สร้างจากความแตกต่างก่อนหน้านี้ แต่เน้นที่ความปลอดภัย หากผู้โจมตีบุกรุกคอนเทนเนอร์ของคุณ และหลบหนีได้ด้วยเหตุผลใดก็ตาม พวกเขามีสิทธิ์เฉพาะผู้ใช้ขั้นพื้นฐานมากกว่าการอนุญาตรูท จำเป็นต้องมีการตั้งค่าเพิ่มเติมเพื่อดำเนินการต่อ และมีข้อบกพร่องอยู่บ้างในขณะนี้ แต่เป็นสิ่งที่ควรค่าแก่การดู
กำลังติดตั้ง Podman
สำหรับ distros ส่วนใหญ่ Podman อยู่ในที่เก็บหลัก ทำให้เป็นคำสั่งการติดตั้งอย่างง่าย:
# Debian/Ubuntu sudo apt install podman # Fedora/CentOS/Redhat sudo dnf install podman # Arch Linux sudo pacman -S podman # OpenSUSE sudo zypper install podman # Gentoo sudo emerge app-emulation/podman
การใช้ Podman
ไวยากรณ์คำสั่งเพื่อเริ่มคอนเทนเนอร์ Podman อาจทำให้สับสนเล็กน้อย แต่เมื่อคุณเริ่มชินแล้ว คุณจะเริ่มจำรูปแบบได้ มีคอนเทนเนอร์ตัวอย่างจากโครงการที่คุณสามารถเรียกใช้โดยป้อนคำสั่งนี้ลงในเทอร์มินัล:
podman run -dt -p 8080:8080/tcp -e HTTPD_VAR_RUN=/run/httpd -e HTTPD_MAIN_CONF_D_PATH=/etc/httpd/conf.d \ -e HTTPD_MAIN_CONF_PATH=/etc/httpd/conf \ -e HTTPD_CONTAINER_SCRIPTS_PATH=/usr/share/container-scripts/httpd/ \ registry.fedoraproject.org/f29/httpd /usr/bin/run-httpd
ซึ่งจะดึงรูปภาพบางส่วนจากรีจิสทรีที่อยู่ในรายการ และเมื่อเสร็จแล้ว คุณจะได้ตัวเลขจำนวนมาก คุณจะเห็นสิ่งนั้นในภายหลังเมื่อคุณตรวจสอบคอนเทนเนอร์ที่ทำงานอยู่
หากต้องการตรวจสอบคอนเทนเนอร์ Podman ที่กำลังทำงานอยู่ ให้ป้อนคำสั่งต่อไปนี้:
podman ps
คุณจะเห็นคอนเทนเนอร์ที่คุณเริ่มก่อนหน้านี้ นี่เป็นการยืนยันว่ากำลังทำงานอยู่ อย่างไรก็ตาม หากคุณต้องการดูหน้าเว็บที่ Apache กำลังทำงานอยู่โดยเฉพาะ คุณจะต้องเรียกใช้คำสั่งต่อไปนี้:
curl https://0.0.0.0:8080
การแทนที่ 0.0.0.0
ด้วยที่อยู่ IP ใด ๆ ที่แสดงเมื่อคุณเรียกใช้ podman ps
สั่งการ. คุณควรได้ HTML ที่อ่านไม่ออกจำนวนมาก แต่ถ้าคุณดูที่ด้านบนขวา คุณจะสังเกตเห็นไวยากรณ์ของชื่อใน HTML และจะรู้ว่ามันใช้งานได้
<title>Test Page for the Apache HTTP Server on Fedora</title>
รูปภาพ Podman
สิ่งที่ดีเกี่ยวกับ Podman คือการใช้รูปภาพ คุณสามารถค้นหารูปภาพอื่นๆ เช่น httpd
หรือโปรแกรมอื่นๆ ที่คุณสนใจจะวิ่ง
podman search CONTAINERNAME
ฉันค้นหา vncserver
และนี่คือสิ่งที่ฉันได้รับ คุณจะเห็นว่ามีตัวเลือกมากมาย และขึ้นอยู่กับความชอบส่วนตัวของคุณ
ในการคว้าหนึ่งในภาพเหล่านั้น ให้เรียกใช้ podman pull
คำสั่ง
podman pull CONTAINERNAME
ขอแนะนำให้คุณดึง URL แบบเต็มเพื่อให้รีจิสตรีคอนเทนเนอร์มีความถูกต้องสมบูรณ์ ตัวอย่างเช่น คำสั่งที่ฉันใช้คือ:
podman pull docker.io/michaelaboeckler/vncserver
แทนที่จะเรียกใช้ podman pull vncserver
เพราะอาจมีภาพที่ไม่ต้องการให้เลือกแทนภาพที่ต้องการ
คุณยังสามารถตรวจสอบรูปภาพของคุณด้วยคำสั่งนี้:
podman images
และหยุดคอนเทนเนอร์ด้วยคำสั่งนี้:
podman stop -l
ที่ -l
แฟล็กหมายความว่าจะหยุดคอนเทนเนอร์ที่รันล่าสุด แต่คุณยังสามารถใช้ -a
ตั้งค่าสถานะเพื่อหยุดคอนเทนเนอร์ทั้งหมด
คุณอาจสังเกตเห็นว่า Podman สามารถดู docker.io สำหรับอิมเมจคอนเทนเนอร์ได้เช่นกัน นั่นเป็นเพราะคำสั่ง Podman และคำสั่ง Docker นั้นเหมือนกันมาก จนบางครั้งแนะนำให้ใช้นามแฝง docker
คำสั่ง podman
แบบนี้:
alias docker='podman'
หมายความว่าทุกครั้งที่คุณป้อน docker
เครื่องของคุณจะเรียกใช้ podman
สั่งเลย
พอดแมนแบบไม่มีรูท
ในการตั้งค่าระบบของคุณสำหรับคอนเทนเนอร์แบบไม่มีรูท มีการตั้งค่าบางอย่างที่ต้องดำเนินการ แต่มีเอกสารที่ดีในหน้า Github
ฉันหวังว่าคุณจะชอบไพรเมอร์นี้ใน Podman ซึ่งเป็นเครื่องมือเล็กๆ น้อยๆ ที่ยอดเยี่ยมที่จะช่วยให้คุณเรียกใช้คอนเทนเนอร์แบบไม่มี daemonless และไม่มีรูท เพื่อให้ระบบของคุณมีความบาง เป็นระเบียบ และปลอดภัย หากเป็นเช่นนั้น อย่าลืมตรวจสอบเนื้อหาคอนเทนเนอร์อื่นๆ ของเรา เช่น คำแนะนำในการใช้งาน Ubuntu ในคอนเทนเนอร์ใน ChromeOS การคัดลอกคอนเทนเนอร์ Docker ไปยังโฮสต์อื่น และการจำกัดทรัพยากร Docker Container