Docker - ที่เก็บข้อมูล

ไดรเวอร์จัดเก็บข้อมูล

Docker มีไดรเวอร์หน่วยเก็บข้อมูลหลายตัวที่อนุญาตให้ใช้งานร่วมกับอุปกรณ์จัดเก็บข้อมูลพื้นฐานได้ ตารางต่อไปนี้แสดงไดรเวอร์หน่วยเก็บข้อมูลต่างๆพร้อมกับเทคโนโลยีที่ใช้สำหรับไดรเวอร์จัดเก็บข้อมูล

เทคโนโลยี ไดร์เวอร์สตอเรจ
โอเวอร์เลย์ FS วางซ้อนหรือซ้อนทับ 2
AUFS aufs
Btrfs brtfs
ตัวจัดการอุปกรณ์ อุปกรณ์
วีเอฟเอส vfs
ZFS zfs

ตอนนี้ให้เราพูดถึงบางกรณีที่คุณจะใช้ไดรเวอร์จัดเก็บข้อมูลต่างๆ -

AUFS

  • นี่คือไดรเวอร์ที่เสถียร สามารถใช้สำหรับแอปพลิเคชันที่พร้อมใช้งานจริง

  • มีการใช้หน่วยความจำที่ดีและเหมาะสำหรับการใช้งาน Docker ที่ราบรื่นสำหรับคอนเทนเนอร์

  • มีกิจกรรมการเขียนสูงที่เกี่ยวข้องกับไดรเวอร์นี้ซึ่งควรได้รับการพิจารณา

  • เหมาะสำหรับระบบที่เป็น Platform เป็นงานประเภทบริการ

Devicemapper

  • นี่คือไดรเวอร์ที่เสถียร ช่วยให้มั่นใจได้ถึงประสบการณ์ Docker ที่ราบรื่น

  • ไดรเวอร์นี้เหมาะสำหรับการทดสอบการใช้งานในห้องแล็บ

  • ไดรเวอร์นี้สอดคล้องกับฟังก์ชันเคอร์เนลหลักของ Linux

Btrfs

  • ไดรเวอร์นี้สอดคล้องกับฟังก์ชันเคอร์เนลหลักของ Linux

  • มีกิจกรรมการเขียนสูงที่เกี่ยวข้องกับไดรเวอร์นี้ซึ่งควรได้รับการพิจารณา

  • ไดรเวอร์นี้เหมาะสำหรับอินสแตนซ์ที่คุณดูแลบิลด์พูลหลายตัว

โอเวล

  • นี่คือไดรเวอร์ที่เสถียรและสอดคล้องกับการทำงานของเคอร์เนลหลักของ Linux

  • มีการใช้หน่วยความจำที่ดี

  • ไดรเวอร์นี้เหมาะสำหรับการทดสอบการใช้งานในห้องแล็บ

ZFS

  • นี่คือไดรเวอร์ที่เสถียรและเหมาะสำหรับการทดสอบการใช้งานในห้องแล็บ

  • เหมาะสำหรับระบบที่เป็นงานประเภท Platform-as-a-Service

หากต้องการดูโปรแกรมควบคุมการจัดเก็บที่ใช้อยู่ให้ออกไฟล์ docker info คำสั่ง

ไวยากรณ์

docker info

ตัวเลือก

ไม่มี

ส่งคืนค่า

คำสั่งจะให้ข้อมูลเกี่ยวกับส่วนประกอบ Docker ที่ติดตั้งบน Docker Host

ตัวอย่าง

sudo docker info

เอาต์พุต

ผลลัพธ์ต่อไปนี้แสดงให้เห็นว่าไดรเวอร์หลักที่ใช้คือไฟล์ aufs ไดรเวอร์และไดเร็กทอรีรูทถูกเก็บไว้ใน /var/lib/docker/aufs.

ปริมาณข้อมูล

ใน Docker คุณมีไดรฟ์ข้อมูลแยกต่างหากที่สามารถแชร์ข้ามคอนเทนเนอร์ได้ เหล่านี้เรียกว่าdata volumes. คุณสมบัติบางประการของปริมาณข้อมูล ได้แก่ -

  • ซึ่งจะเริ่มต้นเมื่อสร้างคอนเทนเนอร์
  • สามารถใช้ร่วมกันและนำกลับมาใช้ใหม่ได้ในหลาย ๆ คอนเทนเนอร์
  • การเปลี่ยนแปลงใด ๆ ในระดับเสียงสามารถทำได้โดยตรง
  • แม้ว่าจะมีการลบคอนเทนเนอร์แล้วก็ตาม

ลองดูที่คอนเทนเนอร์ Jenkins ของเรา มาทำdocker inspectเพื่อดูรายละเอียดของภาพนี้ เราสามารถใช้คำสั่งต่อไปนี้เพื่อเขียนผลลัพธ์ของไฟล์docker inspect คำสั่งไปยังไฟล์ข้อความแล้วดูไฟล์ตามนั้น

sudo docker inspect Jenkins > tmp.txt

เมื่อคุณดูไฟล์ข้อความโดยใช้ไฟล์ more commandคุณจะเห็นรายการเป็น JENKINS_HOME=/var/Jenkins_home.

นี่คือการจับคู่ที่ทำภายในคอนเทนเนอร์ผ่านภาพ Jenkins

ตอนนี้สมมติว่าคุณต้องการแมปไดรฟ์ข้อมูลในคอนเทนเนอร์กับไดรฟ์ข้อมูลในเครื่องจากนั้นคุณต้องระบุตัวเลือก –v เมื่อเรียกใช้คอนเทนเนอร์ ตัวอย่างแสดงด้านล่าง -

sudo docker run –d –v /home/demo:/var/jenkins_home –p 8080:8080 –p 50000:50000 jenkins

อ็อพชัน –v ใช้เพื่อแมปไดรฟ์ข้อมูลในคอนเทนเนอร์ซึ่งเป็น /var/jenkins_home ไปยังตำแหน่งบน Docker Host ของเราซึ่งก็คือ /home/demo.

ตอนนี้ถ้าคุณไปที่ไฟล์ /home/demo ตำแหน่งบน Docker Host ของคุณหลังจากเปิดใช้งานคอนเทนเนอร์ของคุณคุณจะเห็นไฟล์คอนเทนเนอร์ทั้งหมดอยู่ที่นั่น

การเปลี่ยนไดร์เวอร์หน่วยเก็บข้อมูลสำหรับคอนเทนเนอร์

หากคุณต้องการเปลี่ยนเป็นไดรเวอร์หน่วยเก็บข้อมูลที่ใช้สำหรับคอนเทนเนอร์คุณสามารถทำได้เมื่อเปิดใช้งานคอนเทนเนอร์ ซึ่งสามารถทำได้โดยใช้–volume-driver พารามิเตอร์เมื่อใช้ docker runคำสั่ง ตัวอย่างได้รับด้านล่าง -

sudo docker run –d --volume-driver=flocker 
   –v /home/demo:/var/jenkins_home –p 8080:8080 –p 50000:50000 jenkins

–volume-driver ใช้เพื่อระบุไดรเวอร์หน่วยเก็บข้อมูลอื่นสำหรับคอนเทนเนอร์

เพื่อยืนยันว่ามีการเปลี่ยนไดรเวอร์ก่อนอื่นให้ใช้ docker psคำสั่งเพื่อดูคอนเทนเนอร์ที่กำลังทำงานอยู่และรับ ID คอนเทนเนอร์ ดังนั้นให้ออกคำสั่งต่อไปนี้ก่อน -

sudo docker ps

จากนั้นออกก docker inspect กับคอนเทนเนอร์และใส่เอาต์พุตในไฟล์ข้อความโดยใช้คำสั่ง

sudo docker inspect 9bffb1bfebee > temp.txt

หากคุณเรียกดูไฟล์ข้อความและไปที่บรรทัดที่ระบุว่า VolumeDriverคุณจะเห็นว่ามีการเปลี่ยนชื่อไดรเวอร์

การสร้างไดรฟ์ข้อมูล

สามารถสร้างไดรฟ์ข้อมูลล่วงหน้าโดยใช้ไฟล์ dockerคำสั่ง มาเรียนรู้เพิ่มเติมเกี่ยวกับคำสั่งนี้

ไวยากรณ์

docker volume create –-name=volumename –-opt options

ตัวเลือก

  • name - นี่คือชื่อของโวลุ่มที่ต้องสร้าง

  • opt - นี่คือตัวเลือกที่คุณสามารถให้ได้ในขณะที่สร้างไดรฟ์ข้อมูล

ส่งคืนค่า

คำสั่งจะแสดงชื่อของโวลุ่มที่สร้างขึ้น

ตัวอย่าง

sudo docker volume create –-name = demo –opt o = size = 100m

ในคำสั่งด้านบนเรากำลังสร้างไดรฟ์ข้อมูลขนาด 100MB และด้วยชื่อของการสาธิต

เอาต์พุต

ผลลัพธ์ของคำสั่งดังกล่าวแสดงไว้ด้านล่าง -

รายชื่อเล่มทั้งหมด

คุณยังสามารถแสดงรายการไฟล์ docker volumes บน docker host. รายละเอียดเพิ่มเติมเกี่ยวกับคำสั่งนี้มีให้ด้านล่าง -

ไวยากรณ์

docker volume ls

ตัวเลือก

ไม่มี

ส่งคืนค่า

คำสั่งจะส่งออกไดรฟ์ข้อมูลทั้งหมดบนไฟล์ docker host.

ตัวอย่าง

sudo docker volume ls

เอาต์พุต

ผลลัพธ์ของคำสั่งดังกล่าวแสดงไว้ด้านล่าง -