การใช้งาน Docker Container สามารถใช้งานได้หลายแบบทั้งแบบ Container เดี่ยวๆ ใส่ service ที่ต้องการใช้ลงไป หรือเอา Container หลายตัวมาเชื่อมต่อกันผ่าน Docker Link เช่น volume + web + database เป็นต้น ซึ่งสามารถประยุกต์ใช้ได้หลายวิธี ครั้งนี้จะมาแนะนำสำหรับผู้ที่ต้องการแปลง web app แบบเดิม มาใช้เป็น Multi Container App เริ่มจากเราต้องออกแบบก่อนว่า Container App ที่เราจะสร้่างต้องใช้อะไรบ้าง ตัวอย่างเช่น มี web server + php เชื่อมต่อกับ mariadb เป็นต้น เราสามารถใช้ Docker Link, Fig, Compose ในการเชื่อม Container เข้าหากันได้ เมื่อเชื่อมโยงแล้ว Docker จะสร้าง ENV เพิ่มมาเพื่อให้เราใช้งานใน App นั้นๆ มาดูตัวอย่างกัน

เริ่มจาก run container ส่วน database ก่อนดังนี้

docker run -d -e MARIADB_PASS="mypass" --name mariadb tutum/mariadb

เราจะพบว่ามี MariaDB ทำงานแบบไม่ expose port มายังเครื่อง host จากนั้นลอง run wep app เปล่าๆ ขั้นมาเพื่อสังเกตการทำงาน

docker run -d -P --link mariadb:mariadb --name info tutum/apache-php

เพื่อ browse เว็บเข้าไปดูจะพบว่า web app มองเห็นการ link กับ database

ข้างหลังคือการเรียกผ่าน ENV นั่นเอง

มาลองเขียน web app แค่ช่วงตรวจสอบการเชื่อมต่อ database ดู เริ่มจาก

สร้าง directory เก็บ Dockerfile

mkdir php-example

cd php-example

จากนั้นสร้าง Dockerfile ดังนี้

และ index.php ง่ายๆ ดังนี้

จากโค้ดจะเห็นว่าจะดึง ENV มาใช้งานทั้ง host, password สั่ง build ได้เลย

docker build -t redlinemobi/php-example .

จากนั้นสั่ง run พร้อม link กับ database ดังนี้

docker run -d -P --link mariadb:mariadb --name web redlinemobi/php-example

ลอง browse ดู จะพบว่าสามารถเชื่อมต่อได้ คุณสามารถใช้หลักการแบบนี้ไปประยุกต์ใช้กับภาษาอื่นๆ ได้ เช่นเดียวกัน

Comments are closed.