เนื่องจากการทำงานของ 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

การใช้ –P นั้นหมายถึงการสั่งให้ Container ที่ทำงานอยู่นั้นทำการเปิด Port การเชื่อมต่อแบบสุ่มตั่งแต่ Port 49153 ถึง 65535
ใช้คำสั่ง sudo docker ps ในการตรวจสอบจะพบกับ Container ที่ได้สร้างขึ้นและมีหมายเลข Port ระบุมาด้วย โดยจะเป็น Port 5000 ที่เป็น Port การเชื่อต่อภายใน Container และ Port 49153 ที่เป็น Port ที่เชื่อมต่อกับเครื่อง Host วิธีการสังเกตคือ เลขที่อยู่หลัง 0.0.0.0: จะเป็นหมายเลข Port ที่ใช้เชื่อมต่อกับเครื่อง Host ส่วนหมายเลขที่อยู่หลัง -> จะเป็ยหมายเลช Port ที่ใช้เชื่อมต่อภายใน Container ส่วนตัวอักษรที่อยู่หลังเครื่องหมาย / จะระบุประเภทของการเชื่อมต่อว่าเป็นแบบใดในภาพเป็นการเชื่อมต่อแบบ TCP

วิธีการกำหนด port ให้ Container ใช้ –p ตามด้วยหมายเลข Port ที่ต้องการเช่น –p 5000:5000 ทดลองใช้คำสั่ง

sudo docker run -d -p 127.0.0.1:5000:5000 training/webapp python app.py

เพื่อสร้าง Container ใหม่ที่ทำการระบุให้ใช้ Port 5000 ในการเชื่อมต่อ
ใช้คำสั่ง sudo docker ps จะเห็น Container ใหม่ที่ใช้ Port 5000

วิธีการเปลี่ยนรูปแบบการเชื่อมต่อให้ปลี่ยนค่าหลังเครื่องหมาย / ตามรูปแบบการเชื่อมต่อที่ต้องการ TCP หรือ UDP ตัวอย่างคำสั่ง

sudo docker run -d -p 127.0.0.1:5000:5000/udp training/webapp python app.py

ทดลองแสดงผลการเชื่อมต่อระหว่าง Container และเครื่อง Localhost ด้วยคำสั่ง

sudo docker port container_name 5000

โดยทำการเปลี่ยนค่า kickass_heisenberg เป็นชื่อ Container ที่ต้องการเช่น

sudo docker port kickass_heisenberg 5000

จะแสดงผล Port ที่เครื่อง Localhost สามารถเชื่อมต่อได้คือ Port 5000

วิธีที่สอง Container Linking
มารู้จักการกำหนดชื่อให้ Container (Container naming) กันก่อน
ทำการกำหนดชื่อ Container ด้วย –name ตามด้วยชื่อใน How-To ครั้งนี้จะใช้ชื่อ web สร้าง Container web ที่รัน Python แอพพลิเคชั่นด้วยคำสั่ง

sudo docker run -d -P --name web training/webapp python app.py

ตรวจสอบการสร้าง Container ด้วยคำสั่ง

sudo docker ps

เริ่มทำ Container Linking โดยใน How-To ครั้งนี้จะทำการลิงค์ระหว่าง Container ที่มีการรัน Python และ Postgres เข้าด้วยกัน
สร้าง Container ที่รันฐานข้อมูล Postgres โดยกำหนดชื่อเป็น db ด้วยคำสั่ง

sudo docker run -d --name db training/postgres

ลบ Container web ก่อนทำการลิงค์ด้วยคำสั่ง

sudo docker rm -f web

ทำการสร้าง Container Link ระหว่าง Python และ Postgres ด้วยคำสั่ง

sudo docker run -d -P --name web --link db:db training/webapp python app.py

เมื่อดูการทำงานของ Container ด้วยคำสั่ง

sudo docker ps

ก็จะพบการทำงานของ Container Link ปรากฏขึ้น

สำหรับ How-To ครั้งนี้ก็จบลงเพียงแค่นี้ใน How-To ครั้งหน้าเรามาใช้งาน Docker แบบมี GUI ง่ายๆกันส่วนจะใช้งานแบบไหนนั้นก็รอติดตามอ่านกันได้นะครับ

Comments are closed.