cAdvisor เป็นโปแกรมที่ไว้ใช้ตรวจสอบการใช้ทรัพยาการณ์ของ Docker และ เครื่อง Host ที่มีการแสดงผลแบบกราฟที่เข้าใจง่ายและสะดวกในการใช้งาน
ติดตั้ง curl ด้วยคำสั่ง
sudo apt-get install curl

ติดตั้ง Docker ด้วยคำสั่ง

curl -sSL https://get.docker.com/ubuntu/ | sudo sh

ติดตั้ง cAdvisor ด้วยคำสั่ง

sudo docker run \
--volume=/:/rootfs:ro \
--volume=/var/run:/var/run:rw \
--volume=/sys:/sys:ro \
--volume=/var/lib/docker/:/var/lib/docker:ro \
--publish=8080:8080 \
--detach=true \
--name=cadvisor \
google/cadvisor:latest


Continue reading

เว็บนี้เคยนำเสนอเรื่อง Logstash, Kinana, ElasticSearch ไปบ้างแล้ว ซึ่งอธิบายรายละเอียดในส่วนของการติดตั้งไว้อย่างดี ครั้งนี้จะมาแนะนำการใช้งานผ่าน Container กันบ้าง Logstash เป็นเครื่องมือที่ได้รับความนิยมมากขึ้น เพราะไม่เพียงแค่มีความสามารถในการดึง log จากไฟล์ filter log และการเชื่อมต่อกับ syslog-ng ได้ แต่ยังสามารถเชื่อมต่อกับ ElasticSearch ทำให้การเก็บ log บนฐานข้อมูลมีประสิทธิภาพมากขึ้น การจัดการ log ทำได้ง่ายผ่าน LogStash ได้ง่าย

สำหรับ Kibana เป็นโครงการ Visualized ข้อมูลที่มีอยู่ใน ElasticSearch ทำให้เราสามารถสร้างการประมวลผลข้อมูลจาก log ธรรมดาจาก ElasticSearch ให้กลายเป็น Grap ที่ดูเข้าใจได้ง่าย และที่สำคัญคือสามารถเขียน config เพื่อใช้ในการวิเคราะห์ข้อมูลได้ด้วย

ครั้งนี้เราจะมาใช้งาน Logstash, Kibana และ ElasticSearch ผ่าน Docker Container มีนักพัฒนาหลายรายประยุกต์ Container กับบริการเหล่านี้ แต่มี Docker Image อยู่ชุดหนึ่งเป็นจุดเริ่มต้นได้ง่ายคือ pblittle/docker-logstash ทำออกมาได้ดี และมีเอกสารอ้างอิงที่เข้าใจได้ง่าย ใน image ชุดนี้ได้รวมเอา service ทั้งหมดรวมเข้าไว้เป็นก้อนเดียว แต่การเรียกใช้งานไม่จำเป็นต้องเรียก service ภายในตัวเองทั้งหมด แต่สามารถเรียกใช้ service ภายนอกเข้ามาร่วมได้ด้วย สำหรับ logstash config สามารถ link จาก url ภายนอกได้ซึ่งทำให้ง่ายในการจัดการมากขึ้น ลองดูตัวอย่าง


Continue reading

Fig เป็นเครื่องมือจัดการ Docker Container โดยหลักการใช้การเขียนไฟล์ config ในรูปแบบ yaml เพื่อระบุโครงสร้างของ application ที่ต้องการ deploy ซึ่งอาจจะเริ่มจาก Docker Image หรือ Dockerfile เพื่อสั่ง build docker image ใหม่ก็ได้ อีกทั้งยังสามารถ link container ได้ด้วย ทำให้ Fig สามารถ build application หรือ service ใหม่ได้ง่าย เหมาะสำหรับนักพัฒนาที่ต้อง build image ใหม่ซ้ำๆ หรือ deploy service ซ้ำๆ เป็นต้น

ตัวอย่างการใช้งาน Fig แบบง่ายๆ คือ python flask เก็บข้อมูลใน redis ซึ่งเราจะเริ่มต้นด้วยการ build docker image จาก Dockerfile โดยใช้ image ของ python2.7 เป็นพื้นฐาน เราจะได้ image ในส่วน web มา ในส่วนที่ 2 จะเป็นการใช้ image redis เป็น db เก็บข้อมูล จากนั้น link container ของ web และ db เข้าด้วยกัน ก่อนจะเริ่มลงมือทดลอง มาติดตั้ง Fig กันก่อน การติดตั้ง Fig ทำได้หลายวิธี วิธีที่ง่ายที่สุดคือผ่าน pip ดังนี้

sudo pip install fig


Continue reading

Brian Morearty บรรยายเกียวกับ Docker ที่สำนักงานใหญ่ของ Twitter ใน slide มีเทคนิคการใช้งาน Docker ที่น่าสนใจอยู่หลายเรื่อง และเป็นประโยชน์มาก ก็เลยถือโอกาสสรุป 10 เทคนิคที่น่าสนใจมาให้ได้ทดลองใช้กัน

เทคนิคที่ 1 เอาค่า Container ID ตอนสั่ง run container

ID=$(docker run ubuntu echo hello world)

ค่าเราสามารถเอาค่า ID ที่ได้เอาไปทำอย่างอื่นต่อได้

เทคนิคที่ 2 ติดตั้งโปรแกรมเพิ่มเติมใน container โดยไม่พึ่ง Dockerfile

docker run -it ubuntu bash

โปรแกรมจะพาเราเข้าไปที่ bash shell ของ container ที่เราสั่งใช้งาน จากนั้นเราจะทำอะไรกับ container นั้นก็ได้ จากนั้นสั่ง commit ได้เลย

docker commit CONTAINER-ID NEW-NAME


Continue reading

Hipache เป็นโครงการโอเพนซอร์สพัฒนาโดย dotCloud ทำหน้าที่เป็น Load Balancing และ Routing ให้กับ Docker Container และ service ปลายทาง ซึ่ง Hipache เรียกใช้ข้อมูลใน Redis การผูก Domain Name ต่างๆ จะสามารถทำได้ง่ายมากขึ้น แค่เขาข้อมูลไปใส่ใน Redis เท่านั้น เราสามารถใช้ Hipache จาก Docker Image ได้ ไม่ต้องติดตั้ง Hipache เองก็ได้

เริ่มต้นง่ายๆ ด้วยการสั่ง run container จาก Docker Image ที่ชื่อ Hipache ดังนี้

sudo docker run -d -p 80:80 -p 6379:6379 hipache

เราจะต้อง expose port nginx และ Redis เพื่อให้ใช้งานตรงจากภายนอกได้ หากใช้คำสั่ง docker ps ดูเราจะเห็นค่า port เป็น 0.0.0.0:80->80/tcp, 0.0.0.0:6379->6379/tcp คือ expose port 80 และ 6379 แล้ว


Continue reading

Shipyard 2.0 เป็น Image หนึ่งของ Docker ที่เขียนขึ้นมาเพื่อให้ใช้งาน Docker ได้ง่ายผ่านทาง Web Interface มาเริ่มเล่นกันเลย…

ทำการแก้ไขไฟล์ /etc/default/docker.io โดยการเพิ่ม
DOCKER_OPTS=" --dns 8.8.8.8 --dns 8.8.4.4 -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock"
เพื่อทำให้เข้าใช้งาน Docker ได้ผ่านทาง Web Socket และ Unix Socket ด้วยคำสั่ง

sudo gedit /etc/default/docker.io


Continue reading

เนื่องจากการทำงานของ Docker นั้น 1 Container สามารถทำงานได้เพียง 1 แอพพลิเคชั่นจึงต้องมีการลิงค์เพือให้สามารถให้แอพพลิเคชั่นหลายๆตัวสามารถทำงานด้วยกันได้
วิธีการ ลิงค์ Docker นั้นมีวิธีการอยู่ด้วยกัน 2 วิธีหลัก คือ

  1. Network port mapping refresher
  2. Container Linking

มาเริ่มกันที่วิธีแรกคือ Network port mapping refresher
สร้าง Container ที่มีการทำงานของ Python แอพพลิเคชั่น ด้วยคำสั่ง

sudo docker run -d -P training/webapp python app.py
Continue reading

Docker นั้นสร้างขึ้นมาให้ใช้งานกับระบบปฏิบัติการมีพื้นฐานมากจาก Linux เท่านั้นแต่ถ้าหากต้องการใช้งาน Docker ผ่านทางระบบปฏิบัติการอื่น Docker ก็ได้เตรียมทางเลือกไว้ให้นั่นคือ boot2docker ที่มีคำสั่งในการใช้งานเหมือนกันกับการใช้งาน Docker บน Linux ไปเริ่มติดตั้งกันเลย (พก Ram ติดเครื่องไว้มากๆนะครับ!)

เลือกดาวน์โหลดไฟล์ตามระบบปฏิบัติการที่ใช้งานที่ http://boot2docker.io


Continue reading

Docker คือซอฟต์แวร์ที่เข้ามาช่วยแก้ปัญหาในกระบวนการพัฒนาโปรแกรมหรือซอฟต์แวร์ซึ่งบางทีมีการทำงานเป็นทีมหลายคนจะมีความแตกต่างกันของระบบปฏิบัติการและเวอร์ชันจึงทำให้การพัฒนานนั้นจะเกิดปัญหา Error ที่ต่างกัน วิธีการทำงานของ Docker คือการนำสภาพแวดล้อมต่างๆในการพัฒนามารวมไว้ด้วยกันเรียกว่า Container แต่มีข้อกำหนดว่าแต่ละ Container สามารถใช้งานคำสั่งได้เพียงคำสั่งเดียว ข้อมูลเพิ่มเติมของ Docker สามารถอ่านได้ที่ https://www.docker.com/whatisdocker
Continue reading

มาสมัครสมาขิก Docker Hub กันก่อน เข้าไปที่ https://hub.docker.com แล้วทำการกรอกข้อมูลลงในช่องต่างๆดังนี้

  • Username : ชื่อผู้ใช้งาน
  • Password : รหัสผ่าน
  • Email Address : อีเมลที่ใช้ในการสมัคร

ถ้าต้องการรับข้อมูลข่าวสารของ Docker ผ่านทางอีเมลให้ติ๊กถูกที่ Yes! I want the weekly newsletter! เมื่อกรอกข้อมูลครบถ้วนแล้วกดปุ่ม Sing Up
Continue reading