ฉันรู้ว่า Snappy Ubuntu สามารถโฮสต์คอนเทนเนอร์ Docker ได้ คำถามของฉันคือมันสามารถทำงานภายในคอนเทนเนอร์ได้หรือไม่ในฐานะแขกของนักเทียบท่า
เหตุผลที่ฉันถามคือฉันไม่พบคอนเทนเนอร์ของแขก Snappy VM ในที่เก็บ Docker สาธารณะ
ฉันรู้ว่า Snappy Ubuntu สามารถโฮสต์คอนเทนเนอร์ Docker ได้ คำถามของฉันคือมันสามารถทำงานภายในคอนเทนเนอร์ได้หรือไม่ในฐานะแขกของนักเทียบท่า
เหตุผลที่ฉันถามคือฉันไม่พบคอนเทนเนอร์ของแขก Snappy VM ในที่เก็บ Docker สาธารณะ
คำตอบ:
ใช่คุณสามารถทำได้: Snappy เป็นเพียง Ubuntu รุ่นที่ถอดแล้วและ Ubuntu ทำงานได้ใน Docker ข้อเท็จจริงที่ว่า Snappy ไม่ปรากฏในที่เก็บ Docker สาธารณะหมายความว่าคุณต้องทำสิ่งต่างๆด้วยตนเอง
ก่อนอื่นรับภาพล่าสุด:
wget http://cdimage.ubuntu.com/ubuntu-core/preview/ubuntu-core-alpha-02_amd64-virt.img
ไฟล์นี้เป็นรูปภาพ QCOW2 สำหรับ QEMU / KVM แต่เราสามารถแยกเนื้อหาสำหรับ Docker ได้เช่นกัน
ในการเข้าถึงไฟล์ภายในอิมเมจ QCOW2 คุณจะต้องqemu-nbd
ติดตั้งและเรียกใช้:
qemu-nbd -c /dev/nbd0 ubuntu-core-alpha-02_amd64-virt.img
คำสั่งนี้จะสร้าง "ดิสก์เสมือน" ชื่อ/dev/ndb0
กับ "พาร์ทิชันเสมือน" /dev/ndb0pX
การตั้งชื่อ ใช้fdisk -l /dev/nbd0
เพื่อรับทราบว่าพาร์ทิชันใดอยู่ในอิมเมจ QCOW2
พาร์ติชันที่คุณสนใจคือ/dev/ndb0p3
ติดตั้งเพื่อ:
mount /dev/ndb0p3 /somewhere
เกือบเสร็จแล้ว! เพียงทำตามคำแนะนำของนักเทียบท่าบนภาพฐานที่กำหนดเอง :
tar -C /somewhere -c . | docker import - snappy
ตอนนี้คุณพร้อมที่จะสร้างภาพ Snappy ของคุณที่ด้านบนของภาพฐานนั้น ตัวอย่างเช่นฉันสร้างภาพsnappy_test เมื่อติดตั้งแอปxkcd-webserver นี่คือสิ่งที่Dockerfile
ฉันใช้:
FROM snappy:latest
RUN snappy install xkcd-webserver
EXPOSE 80