ข้ามไปที่เนื้อหาหลัก

ย้าย Docker Container ข้าม Cloud Provider

ย้าย Docker Container ข้าม Cloud Provider

ปัญหาเรื่องการย้าย 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 จะเร็วและสะดวกกว่ามาก
วิธีที่ 1 แบบ Export / Import
สั่ง Export ก่อน
sudo docker export mynodeapp > mynodepp-latest.tar
จะได้ filesystem ของ container mynodeapp ในรูปแบบของไฟล์ tar จากนั้นย้ายไฟล์ไปยัง Cloud Provider ปลายทาง แล้วสั่ง Import
cat mynodepp-latest.tar | sudo docker import - mynodepp:version2
docker run -Pd mynodepp:version2
วิธีที่ 2 แบบ Push / Pull
สั่ง Commit State ของ Container ที่กำลังทำงานอยู่
docker commit mynodeapp mynodeapp:version2
สั่ง Tag และ push ไปยัง registry ปลายทาง
docker tag mynodeapp:version2 index.fffee.org/mynodeapp
docker push index.fffee.org/mynodeapp
สั่ง Pull เมื่อต้องการใช้งาน
docker run -Pd index.fffee.org/mynodeapp

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

Docker Crash Course

 https://www.youtube.com/watch?v=pg19Z8LL06w ▬▬▬▬▬▬ T I M E S T A M P S ⏰ ▬▬▬▬▬▬ 0:00 - Intro and Course Overview 02:54 - What is Docker? 03:51 - What problems Docker solves in development and deployment process 11:38 - Virtual Machine vs Docker 17:19 - Install Docker 21:36 - Docker Images vs Containers 26:32 - Docker Registries 29:38 - Docker Image Versions 32:02 - Main Docker Commands - Pull and Run Docker containers 39:06 - Port Binding 42:50 - Start and Stop containers 46:54 - Private Docker Registries 48:11 - Registry vs Repository 49:09 - Dockerfile - Dockerize Node.js app 58:30 - Build Image 1:02:39 - Docker UI Client 1:03:39 - Overview: Docker in complete software development lifecycle 1:06:38 - Where to go from here

Podman

  https://medium.com/@raghavendraguttur/podman-containers-beginners-guide-830b931e66f4