CoreOS เป็นระบบปฏิบัติการที่ได้รวมความสามารถของการใช้งาน Docker ไว้ในตัวเพื่อการใช้งาน Docker ให้มีประสิทธิภาพได้อย่างเต็มที่เรียกได้ว่าเป็น OS ที่เกิดมาเพื่อ Docker เลยก็ว่าได้ข้อมูลเพิ่มเติมของ CoreOS สามารถอ่านได้ที่ https://coreos.com
ดาวน์โหลด CoreOS ได้ที่ https://coreos.com เลือกดาวน์โหลดไฟล์ที่ต้องแต่ใน How-To ครั้งนี้จะเลือก Vagrant เนื่องจากจะทดลองเล่นบน VirtualBox

จากนั้นกดลิงค์เพื่อทำการดาวน์โหลด Vagrant ตามระบบปฏิบัติการที่ใช้งาน


Continue reading

เนื่องจากมีคนชวนเล่น CircleCI เมื่อต้นเดือนที่ผ่านมา เพิ่งจะได้มาลองเล่นพบว่า CircleCI ทำอะไรได้หลายอย่างมากกว่า เครื่องมือ CI/CD เดิมๆ ที่มีอยู่ วิธีการใช้งานก็ง่ายมากๆ เพียงแค่เชื่อม repository ของโครงการของคุณที่ต้องการใช้คู่กับ CircleCI จากนั้นก็เขียน config ในรูปแบบไฟล์ yaml สั่ง push code ใหม่เข้า repository เท่านี้ก็เรียบร้อยแล้ว CircleCI จะทำหน้าที่ของมันโดยอัตโนมัติ CircleCI รองรับการทำ CI/CD ได้หลายภาษา เช่น Ruby/Rails, Python, Node.js, PHP, Java, Haskell นอกจากนี้ยังรองรับ Mobile Platform อย่าง Android, iOS และรองรับการทำงานกับ Docker Container ด้วย

อันดับแรก สมัครสมาชิก CircleCI กันก่อนที่ https://circleci.com


Continue reading

เผอิญมีคนถามเรื่อง Pootle แต่จำไม่ได้ว่าใครถามเอาเป็นว่า Pootle เป็นเครื่องมือแปล ui ของซอฟต์แวร์ผ่านเว็บ สนับสนุนทั้งไฟล์ po, xml ทำให้ทีมแปลทำงานร่วมกันได้ง่ายมากขึ้น หากอยากจะทดลองใช้ Pootle ก็สามารถติดตั้งกันได้ง่ายๆ โดยใช้ Docker ดังนี้

docker pull jannkleen/pootle

docker run -v /var/pootledb --name POOTLEDB busybox true

docker run -p 80:8000 --volumes-from POOTLEDB jannkleen/pootle


Continue reading

Docker มีบริการ Docker Registry ให้เราสามารถ pull image มาใช้งานได้ และให้เรา push image ขึ้นไปบน Docker Registry ได้เหมือนกัน หากเราดูจากหน้าเว็บ hub.docker.io จะพบว่านอกจากจำเป็น Registry แล้วยังมีบริการอื่นๆ อีกมาก เช่น Private Registry, Repository, Auto Build จาก VCS เป็นต้น ครั้งนี้จะมาใช้งานบริการ Auto Build กัน โดยปกติเวลาทำ Image เพียงแค่เขียน Dockerfile จากนั้นสั่ง Build จะได้ Docker Image อยู่ในเครื่อง ถ้ามีการเปลี่ยนแปลง ก็ต้องสั่ง Build ใหม่อีกรอบ ซึ่งหลายท่านหันไปใช้ CI/CD ช่วยให้อัตโนมัติมากขึ้น

แต่ Docker Hub มีบริการ Auto Build จาก VCS ที่คุณใช้งานอยู่ได้ด้วย เพียงแค่เชื่อมบริการของ Docker Hub และ VCS ที่ใช้อยู่เท่านั้น จากนั้นก็เลือก Repository ที่ต้องการใช้ Docker Hub ให้ คุณก็มีหน้าที่แค่ทดสอบและ commit ไฟล์ไปยัง VCS เท่านั้น อันดับแรกสมัครสมาชิก Docker Hub ก่อน จากนั้นให้เข้าไปที่หน้า Profile ของเรา


Continue reading

Geard เป็นเครื่องมือบน command-line ใช้สำหรับเชื่อมโยง Docker Container กับ Systemd หรือเชื่อม Docker Container จากหลายๆ Host เข้าด้วยกัน ซึ่งโครงการนี้จะถูกใช้ใน OpenShift รุ่นถัดไป สำหรับท่านที่อยากลองใช้ Geard สามารถใช้งานได้จาก Linux ตระกูล RedHat ได้แก่ RHEL, CentOS, Fedora เป็นต้น ใน Fedora 20 มี Geard อยู่ใน Repository (testing) เรียบร้อยแล้ว เราสามารถนำมาใช้งานได้เลย

ครั้งนี้เราจะใช้ Fedora 20 ให้ติดตั้ง Geard กันก่อนดังนี้

yum install --enablerepo=updates-testing geard

เมื่อติดตั้งเสร็จให้สั่ง start docker ดังนี้

systemctl start docker


Continue reading

วิธีการ Backup Container มีอยู่หลายวิธี เช่น Commit Container ที่กำลังทำงานอยู่แล้ว push ไปที่ Docker Registry เคยแนะนำไปแล้วเรื่องการย้าย Container ข้าม Cloud Provider หรือการ Save Container แล้วโยนผ่าน ftp, scp ไปยังเครื่องปลายทาง ซึ่งมีหลายทางเลือก วิธีที่จะมาแนะนำในครั้งนี้เป็นวิธีที่ 2 คือการ Save Container ลองมาดูตัวอย่างกัน

ให้สั่ง run container สั่งตัวนึงขึ้นมาก่อน

docker run -dP --name web1 anoochit/apache2

จากนั้นแก้ไขข้อมูลใน Container ที่กำลังทำงานอยู่ผ่าน bash

docker exec -it web1 bash

คุณจะ drop เข้าไปที่ bash shell ของ container จากนั้นแก้ไขไฟล์สักไฟล์นึง ยกตัวอย่างเช่น /var/www/index.html เป็นต้น

echo "<h1>Hello, World</h1>" > /var/www/index.html


Continue reading

หากใครที่ไม่ชอบ cAdvisor ของ Google ซึ่งดูหยาบไป ดูย้อนหลังไม่ได้ อยากได้ Dashboard ที่ปรับแต่งได้ตามแบบที่ชอบ แนะนำให้ใช้ DataDog ครับ DataDog เป็นบริการ Monitoring น้องใหม่ที่สามารถจับข้อมูลได้หลายระบบปฏิบัติการ รวมไปถึง Docker, CoreOS, Cloud Service อย่าง Amazon Web Service, OpenShift ได้อีกด้วย นอกจากนี้ยังมีส่วนเสริมที่เชื่อม DataDock กับ Service หรือ Application ต่างๆ เพื่อ Monitor ในระดับ Service ได้ เช่น Apache, PHP, MongoDB, NGinX เป็นต้น DataDog เปิดให้ทดลองใช้งานฟรี 14 วัน หากทดลองแล้วติดใจซื้อบริการต่อได้

ก่อนอื่นสมัครสมาชิก DataDog กันก่อน จากนั้นเพิ่ม DataDog Agent ซึ่งวิธี Monitor Docker นั้นง่ายมากๆ เราสามารถใช้ DataDog Agent Container มาใช้งานได้ ดังนี้


Continue reading

ถ้าคุณต้องการใช้ CoreOS เป็น Infrastructure หลักในการจัดการ Docker Container ในหลายๆ Host การสร้าง CoreOS Cluster ขึ้นมาใช้งานก็จะเป็นทางเลือกที่ดีที่สุด CoreOS ออกแบบ Cluster ขึ้นมาไม่เหมือนใคร การทำงานจะทำงานผ่าน service หลายตัวประกอบเข้าด้วยกัน เช่น etcd, fleet เป็นต้น CoreOS จะใช้การอ่านข้อมูล Node ของ Cluster จาก etcd เป็นหลัก ไม่ได้เกิดจากการเอาสายเชื่อมต่อกันแต่เกิด Cluster จากการทำงานซอฟต์แวร์เป็นหลัก

มาลองสร้าง CoreOS Cluster บน DigitalOcean กัน สำหรับท่านที่ติดตั้ง CoreOS เองก็สามรถใช้ How-To นี้อ้างอิงได้ CoreOS จะต้องใช้ etcd ซึ่งเป็น Discovery URL เพื่อเก็บข้อมูลของ Node ใน Cluster ซึ่งคุณใช้ etcd service ของคุณเองก็ได้ หรือจะใช้ service กลางจาก discovery.etcd.io ได้เช่นกัน การขอ Discovery URL ทำได้ง่ายๆ ผ่าน cURL ดังนี้

curl -w "\n" https://discovery.etcd.io/new

คุณจะได้รหัส token มาพร้อมกับ Discovery URL ดังนี้

https://discovery.etcd.io/2ff216654df841f09b76715109594100


Continue reading

Tutum เป็น Container Platform สำหรับนักพัฒนาและผู้ดูแลระบบ Tutum ให้ความสามารถของ Container อย่าง Docker ซึ่งช่วยใช้คุณ Build Container, Depoly ตลอดจนจัดการ Application ของคุณบน Cloud Infrastructure ใดๆ ก็ได้ โดยใช้ Tutum ซึ่ง ตอนนี้ Tutum สามารถเชื่อมต่อกับ Cloud Infrastructure ได้ 3 ค่าย ได้แก่ Microft Azure, Amazon Web Service และ DigitalOcean นอกจากนี้ Tutum ยังสามารถเชื่อมต่อเครื่องเซิร์ฟเวอร์ ของคุณเป็น Cluster เดียวกันกับ Tutum ได้อีกด้วย

Tutum ใช้บริการได้ฟรีไม่เสียค่าใช้จ่าย เพราะ Tutum ทำหน้าที่เป็น Platform สำหรับเชื่อมต่อไปยัง Cloud Infra ที่เราใช้บริการอยู่ ดังนั้นการสั่ง Deploy Container อะไรก็ตาม จะสั่งผ่าน Tutum เป็นหลัก


Continue reading

เนื่องจากอยากทดลอง Icinga2 ว่าเป็นอย่างไร แต่พอดูวิธีการติดตั้งแล้วรู้สึกว่าขั้นตอนเยอะเกินไปหรือเปล่า ก็เลยได้ไปค้นที่ Docker Hub ว่ามีนักพัฒนาท่านใดทำ Docker Image ไว้ให้ใช้บ้าง พบว่ามีหลายคน จนเลือกไม่ถูก T_T ผมก็เลยเลือก Image ของ jordan/icinga2 มาลองดู เนื่องจากเข้าใจง่ายดีไม่มีขั้นตอนซับซ้อนมากนัก

วิธีการก็ง่ายๆ สั่ง Pull Image มาจาก Docker Hub

docker pull jordan/icinga2

จากนั้นสั่ง run แบบ expose port 443 และ 80 ที่เครื่อง host

ID=$(docker run -p 80:80 -p 443:443 -d jordan/icinga2:latest)


Continue reading