เตาะแตะไปกับ Docker ตอนที่ 10 Dockerfile (phpLDAPadmin)

ในตอนที่แล้วเราใช้งาน openldap ด้วยคำสั่ง เช่น ldapsearch หรือ ldapadd ได้แล้ว วันนี้เราจะเรียนรู้การใช้ dockerfile สร้าง image ชื่อ phpldapadmin เพื่อใช้เป็น web interface ในการเข้าไปจัดการ LDAP database ของ container ชื่อ openldap โดยที่ phpLDAPadmin นี้คือการรัน php บน apache2 แล้วเราจะติดต่อระหว่าง container กันได้อย่างไร มาดูกันครับ เช่นเดียวกับครั้งที่แล้ว ผมจะแยกเป็น 3 ขั้นตอน คือ 1.ขั้นตอนเตรียมไฟล์ที่เกี่ยวข้อง 2.ขั้นตอนสร้างไฟล์ dockerfile และ 3.ขั้นตอนการรัน container   1.ขั้นตอนเตรียมไฟล์ที่เกี่ยวข้อง ให้แน่ใจว่าอยู่ที่ home directory ให้ใช้คำสั่งนี้ $ cd สร้างไดเรกทอรีของ image … Read more

เตาะแตะไปกับ Docker ตอนที่ 9 Dockerfile (OpenLDAP)

วันนี้เราจะเรียนรู้การใช้ dockerfile สร้าง image ชื่อ openldap เพื่อใช้เป็น LDAP database ผมทดสอบด้วย Oracle VM VirtualBox เป็น VM ที่ตั้งค่า Network adapter เป็นแบบ NAT network ที่ติดตั้ง Ubuntu 16.04 และ docker เรียบร้อยแล้ว ในตัวอย่างนี้ผมตั้งชื่อ host ว่า ldap.example.com โดยแก้ไขที่ไฟล์ /etc/hosts และ /etc/hostname ให้เรียบร้อย แล้วรีบูตเครื่องด้วย ผมจะขอแยกขั้นตอนออกเป็น 3 ขั้นตอนหลัก คือ 1.ขั้นตอนเตรียมไฟล์ที่เกี่ยวข้องซึ่งรวมไฟล์ ldif ด้วย 2.ขั้นตอนสร้างไฟล์ dockerfile และ 3.ขั้นตอนการรัน container   1.ขั้นตอนเตรียมไฟล์ที่เกี่ยวข้อง สร้างไดเรกทอรีของ image ที่เราจะสร้าง $ … Read more

เตาะแตะไปกับ Docker ตอนที่ 8 Cleanup Disk Space

การเรียนรู้ docker เราก็จะมีการทดสอบ pull image มา แล้ว run เป็น container รวมทั้งอาจมีการสร้างพื้นที่เก็บข้อมูลที่เรียกว่า volumes (ทั้งแบบ named volume และ anonymous volume) บ่อยครั้งเมื่อเราใช้คำสั่งตรวจสอบ เราจะพบว่ามีอะไรไม่รู้หลงเหลืออยู่กินเนื้อที่ไปเยอะ ตรวจสอบรายการ container $ docker ps -a ลบ containers ที่ไม่ใช้งานแล้ว $ docker ps –filter status=dead –filter status=exited –filter status=created -aq | xargs -r docker rm -v หมายเหตุ คำสั่งด้านบนนี้จะลบ data containers ด้วย ถ้ามีการสร้าง container ชนิดเก็บ data โปรดตรวจสอบให้ดีนะ … Read more

วิธียกเลิก “Keep a local copy as well” บน PSU Webmail

จากที่เริ่มมีการใช้งาน PSU GSuite (Google Apps for Education – GAFE เดิม) ซึ่งมีเอกสารแนะนำวิธีการใช้งานคือ http://gafe.psu.ac.th/support/1/1 ในช่วงแรก เกรงผู้ใช้จะไม่คุ้นชินกับ Gmail (หึมมมม) ก็เลยแนะนำให้ทำ “Keep a local copy as well” ไว้ด้วย เผื่อว่า ยังสับสน ก็จะได้ดูบน PSU Webmail เดิมได้ แต่ต่อมา ก็อาจจะลืมไปว่า Redirect ไปแล้ว ก็ยังมีเก็บไว้ในพื้นที่ PSU Webmail อยู่ ไม่ได้เข้ามาลบอีกเลย นานเข้าก็ทำให้พื้นที่เต็ม ต่อไปนี้ เป็น วิธียกเลิก “Keep a local copy as well” บน PSU Webmail Login เข้า PSU Webmail … Read more

เตาะแตะไปกับ Docker ตอนที่ 7 Manage data

Docker ให้เราสามารถเลือกใช้วิธีการ mount data เข้าไปให้กับ container อยู่ 3 อย่างคือ 1. Volumes 2. Bind mounts 3. tmpfs mounts Volumes จะถูกเก็บอยู่ในส่วนของ Host filesystem ที่จัดการโดย Docker เอง (อยู่ที่ /var/lib/docker/volumes) และนี่เป็นวิธีที่ดีที่สุดในการจัดเก็บข้อมูลที่เป็น persistent data (ตามคำบอกในเว็บเพจ docs.docker.com) Bind mounts จะถูกเก็บอยู่ในที่ไหนก็ได้ของ Host filesystem เป็นวิธีการที่มีมาตั้งแต่ Docker รุ่นแรก ๆ จึงมีข้อจำกัดเมื่อเทียบกับ Volumes tmpfs mounts จะถูกเก็บอยู่ในหน่วยความจำของ Host เท่านั้น อ่านรายละเอียดเพิ่มเติมได้จากที่นี่ https://docs.docker.com/engine/admin/volumes/ และ https://docs.docker.com/engine/admin/volumes/#more-details-about-mount-types ผมขอเล่าถึงตัวอย่างการใช้งาน Volumes ใน docker-compose.yml … Read more