เริ่มด้วยการติดตั้ง Docker ผ่าน curl กันก่อน
ติดตั้ง curl ด้วยคำสั่ง

sudo apt-get install curl

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

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

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

sudo docker run --name local_registry -p 5000:5000 registry

อนุญาตให้มีการใช้งาน Local Registry ด้วยคำสั่ง

echo 'DOCKER_OPTS="--insecure-registry 172.17.42.1:5000"' | sudo tee -a /etc/default/docker


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

ปัญหาเรื่องการย้าย Application ข้าม Cloud Provider เป็นปัญหาปกติที่ต้องหาทางแก้ไข ซึ่งแต่ละ Cloud Provider มีช่องทางในการบริการที่ต่างกัน เทคโนโลยีต่างกัน เครื่องมือที่ใช้งานก็ต่างกัน เรียกได้ว่าถ้าจะย้าย instance จะทำได้ยากมาก ครั้งนี้จะให้แนวคิดเรื่องการย้าย Container จาก Cloud Provider ค่ายหนึ่งไปยังอีกค่ายหนึ่งหรือจาก Local ไปยัง Cloud Provider ก็ได้ ซึ่งทำได้หลายวิธี

จากภาพแนะนำการย้ายแบบง่ายๆ ผ่าน Docker อย่างเดียวไม่ได้ใช้เครื่องมือใดๆ เพิ่มเติม ถ้าจะให้สะดวกควรมี Orchestration Service อยู่ในแต่ละ Cloud Provider ด้วย ในเบื้องต้นทำความเข้าใจแบบง่ายๆ กันก่อน การทำ Migration ทำได้ 2 แบบ คือ

  1. Import / Export ไฟล์ Container ทั้งก้อนจาก Local ไปยัง Cloud วิธีนี้จะให้ความสะดวกมากกว่าแต่การสำรองข้อมูลและการย้ายไฟล์ Export จะช้าขึ้นอยู่กับความเร็วของเน็คเวิร์ก
  2. Push / Pull ให้ Commit Container State ปัจจุบันแล้ว push ขึ้น Docker Registry อาจจะเป็น Docker Hub (Private) หรือ Private Registry ที่ตั้งขึ้นเองก็ได้ จากนั้นค่อยสั่ง pull ไปยัง Cloud Provider ปลายทาง

สำหรับข้อมูลใน hipache ก็ต้องเปลี่ยนตาม เช่น จากเดิมอยู่ใน Local พอย้าย Container เสร็จจะต้องเปลี่ยน record ใน redis ชี้ไปที่ Container ที่อยู่บน Cloud จึงจะ route traffic ไปได้ถูกต้อง หากทำด้วยมือจะช้า ถ้าใช้ Orchestration Service จะเร็วและสะดวกกว่ามาก
Continue reading