6 คะแนน โดย GN⁺ 2024-11-24 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • Bocker

    • Bocker คือเวอร์ชันอย่างง่ายของ Docker ที่เขียนด้วย bash ราว 100 บรรทัด
  • Prerequisites

    • แพ็กเกจที่จำเป็นสำหรับการรัน Bocker:
      • btrfs-progs
      • curl
      • iproute2
      • iptables
      • libcgroup-tools
      • util-linux >= 2.25.2
      • coreutils >= 7.5
    • ข้อกำหนดการตั้งค่าระบบ:
      • เมานต์ระบบไฟล์ btrfs ที่ /var/bocker
      • มี network bridge ชื่อ bridge0 และ IP 10.0.0.1/24
      • เปิดใช้งาน IP forwarding ที่ /proc/sys/net/ipv4/ip_forward
      • ไฟร์วอลล์สำหรับ route ทราฟฟิกจาก bridge0 ไปยัง physical interface
    • สามารถใช้ Vagrantfile เพื่อสร้างสภาพแวดล้อมที่จำเป็นได้
    • Bocker รันด้วยสิทธิ์ root และมีการเปลี่ยนแปลง network interface, routing table และกฎไฟร์วอลล์ จึงแนะนำให้รันบน virtual machine
  • Example Usage

    • ตัวอย่างการใช้งาน Bocker:
      • ใช้คำสั่ง bocker pull centos 7 เพื่อดึงอิมเมจ CentOS 7
      • ตรวจสอบรายการอิมเมจได้ด้วย bocker images
      • รันคำสั่งในคอนเทนเนอร์ได้ด้วย bocker run img_42150 cat /etc/centos-release
      • ตรวจสอบคอนเทนเนอร์ที่กำลังรันได้ด้วย bocker ps
      • ดูล็อกของคอนเทนเนอร์ได้ด้วย bocker logs ps_42045
      • ลบคอนเทนเนอร์ได้ด้วย bocker rm ps_42045
      • ติดตั้งแพ็กเกจได้ด้วย bocker run img_42150 yum install -y wget
      • คอมมิตการเปลี่ยนแปลงของคอนเทนเนอร์ได้ด้วย bocker commit ps_42018 img_42150
      • สามารถตั้งค่าจำกัด CPU และหน่วยความจำได้
  • Functionality: Currently Implemented

    • ฟังก์ชันที่มีอยู่ในปัจจุบัน:
      • docker build แบบจำกัด
      • docker pull
      • docker images
      • docker ps
      • docker run
      • docker exec
      • docker logs
      • docker commit
      • docker rm / docker rmi
      • ระบบเครือข่าย
      • รองรับ quota / CGroups
  • Functionality: Not Yet Implemented

    • ฟังก์ชันที่ยังไม่ถูกพัฒนา:
      • data volume container
      • data volume
      • port forwarding
  • License

    • โปรแกรมนี้เป็นซอฟต์แวร์เสรีที่เผยแพร่ภายใต้ GNU General Public License
    • ไม่มีการรับประกันด้านความเป็นเชิงพาณิชย์หรือความเหมาะสมสำหรับวัตถุประสงค์เฉพาะ

1 ความคิดเห็น

 
GN⁺ 2024-11-24
ความคิดเห็นจาก Hacker News
  • เคยสร้างโปรเจกต์ชื่อ Bag โดยใช้ proot ซึ่งไม่ใช่ทางเลือกแทน Docker และไม่เกี่ยวข้องกับ cgroups อีกทั้ง CLI ก็แตกต่างจาก Docker ด้วย พวกเขาพัฒนาโซลูชัน proxy chain เพื่อหลบเลี่ยงการเซ็นเซอร์อินเทอร์เน็ต และต้องการให้มันรันบน termux ตอนนั้น termux ยังไม่มี jdk/jre จึงสามารถใช้ jdk ได้โดยสร้างสภาพแวดล้อม archlinux ผ่าน proot สภาพแวดล้อมนี้เหมาะกับงานหลากหลาย และทำให้สามารถสร้างสภาพแวดล้อมและรันคำสั่งแบบอัตโนมัติได้ผ่านสคริปต์ชื่อ bag.sh โดยสคริปต์นี้มี roadmap ที่ไม่ได้อัปเดตมา 5 ปีแล้ว

  • ชอบ bash script แบบมินิมอล และเมื่อ 10 ปีก่อนในแฮกกาธอนเคยทำ intra-cluster load balancer ด้วย bash 40 บรรทัดเพื่อโปรโมต distributed infrastructure ที่ใช้ Docker, Mesos ฯลฯ นอกจากนี้ยังเคยพัฒนาเครื่องมือส่งย้ายจาก colo ไป cloud แต่ตอนนี้ทำหายไปแล้ว สามารถหาชุดสคริปต์ที่มีประโยชน์ได้จาก Shell Fu เป็นต้น

  • ชอบเวลาที่ใน repository มีข้อความอย่าง "ยังไม่ได้ทำ", "สิ่งที่ต้องทำ", "กำลังทำอยู่" และ commit ล่าสุดก็เป็นเมื่อหลายปีก่อน เพราะมันให้ความโล่งใจว่าเราไม่จำเป็นต้องย้อนกลับไปดูรายการสิ่งที่ต้องทำที่ตัวเองพลาดไว้ในโค้ดอีก

  • น่าแปลกที่ไม่ได้พูดถึง lazydocker ในฐานะทางเลือกที่ยอดเยี่ยมของ Docker Desktop มันเป็น terminal UI ที่ฟีเจอร์ค่อนข้างครบและรันผ่าน ssh ได้

  • BastilleBSD เป็นเครื่องมือสำหรับจัดการ jails บน BSD และใช้โครงสร้างหลายอย่างที่พบได้ใน Docker ผู้แสดงความเห็นชอบมันมากกว่าซอฟต์แวร์จัดการ jail ตัวอื่นบน BSD เพราะมี dependency น้อยกว่า

  • ไม่ว่าจะใช้งานได้จริงแค่ไหน แต่ในการนำไปใช้จริงมีเรื่องให้เรียนรู้มากมาย

  • ลิงก์หน้าแรกของ GitHub ใช้งานไม่ได้ ดังนั้นควรเอา "www."; ออก

  • การที่สามารถ reimplement Docker แบบง่าย ๆ ได้ คือปัญหาใหญ่ที่สุดที่บริษัท Docker ต้องเผชิญ คุณค่าที่แท้จริงของ Docker ไม่ได้มีแค่ Docker Hub แต่รวมถึงประสบการณ์แบบบูรณาการที่ Docker บน Windows และ Mac มอบให้ด้วย ซึ่งมอบประสบการณ์ที่ดีกว่าการตั้งค่า VirtualBox และ Vagrant ด้วยตนเองมาก

  • สงสัยว่า Docker เริ่มต้นมาได้อย่างไร

  • สงสัยว่าทำไม Docker ยังไม่ถูกรวมอยู่ใน repository ของ ubuntu/debian ทั้งที่มันน่าจะเป็นกำไรสุทธิที่ทำได้ง่ายมาก