การติดตั้ง Docker บน Linux Ubuntu 18.04

Docker คืออะไร ?


Docker คือ อีกขั้นของ Virtual Machine (VM) สำหรับจำลองสภาพแวดล้อมสำหรับการทำงานขึ้นมาบนเครื่องที่ทำการติดตั้ง เดิมเราใช้ VM เพื่อจำลอง OS ต่างๆ เช่น Linux เพื่อใช้ในการอบรม หรือ การทดลองทำอะไรบางอย่าง เช่น เราจำลอง Linux มาเพื่อติดตั้ง PHP เวอร์ชัน 5.6 ต่อมาต้องการ Update เวอร์ชัน PHP เป็น 7.0 ซึ่งการ Update ข้ามเวอร์ชันแบบนี้ในบางครั้งอาจทำให้โปรแกรมที่เราเคยทำไว้ไม่สามารถใช้งานได้ วิธีแก้แบบเดิมก็คือ จำลอง VM ขึ้นมาใหม่อีก 1 เครื่อง เพื่อติดตั้ง PHP เวอร์ชัน 7.0 แต่หากเราใช้ Docker เราสามารถจำลองสภาพแวดล้อมขึ้นมาใหม่สำหรับติดตั้ง PHP เวอร์ชัน 7.0 ได้ โดยไม่ต้องไปเริ่มตั้งแต่สร้าง VM ตัวใหม่ นั้นเอง ดังรูป


วิธีการติดตั้ง Docker บน Linux Ubuntu 18.04

1. เริ่มต้นจากทำการ Update APT (Advanced Package Tool) ให้เรียบร้อย
sudo apt-get update
!! ถ้าหากไม่สามารถ Update ได้ ซึ่งอาจจะแสดง Error Message เช่น Some index files failed to download ให้แก้โดยเปลี่ยนช่องทางดาวน์โหลดไปที่ Software & Updates > Download from: > เปลี่ยนจาก Main server เป็น Server for United States แล้วลองใหม่อีกครั้ง

2. ติดตั้ง Docker Engine ผ่าน Script โดยคำสั่งแรกจะเป็นการดาวน์โหลด Script ชื่อ get-docker.sh ส่วนคำสั่งถัดไปจะเป็นการสั่งให้ Script ทำงาน เพื่อติดตั้งโปรแกรม
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

3. เมื่อติดตั้งเสร็จสิ้นเราจะทำการทดสอบการติดตั้งว่าเสร็จสมบูรณ์หรือไม่ โดยพิมพ์คำสั่ง
sudo docker run hello-world
หากสำเร็จจะแสดงข้อความ Hello from Docker!

4. หากขี้เกียจพิมพ์ sudo ทุกครั้งที่เรียกใช้คำสั่ง Docker ให้ทำการเพิ่มชื่อ User ของเราเข้าไปในกลุ่ม Docker ดังนี้ หลังจาก Enter ไปแล้ว ให้ทำการ Restart จากนั้นทดสอบด้วยคำสั่งตามข้อที่ 3 โดยตัดคำว่า sudo ออกไป
sudo usermod -aG docker your_username

5. ลงเครื่องมืออื่นๆ ที่จำเป็นเพิ่มเติม ซึ่งถ้าหากเป็นการติดตั้งในระบบปฏิบัติการ Windows หรือ macOS เครื่องมือเสริมพวกนี้รวมอยู่ในไฟล์ติดตั้งแล้ว
Docker Machine - ตรวจสอบเวอร์ชันใหม่ล่าสุดได้ที่ https://github.com/docker/machine/releases/
$ base=https://github.com/docker/machine/releases/download/v0.16.2 &&
  curl -L $base/docker-machine-$(uname -s)-$(uname -m) >/tmp/docker-machine &&
  sudo mv /tmp/docker-machine /usr/local/bin/docker-machine &&
  chmod +x /usr/local/bin/docker-machine
ทดสอบการติดตั้งด้วยคำสั่ง จะแสดงเวอร์ชันของ Docker Machine
docker-machine version
Docker Compose - ตรวจสอบเวอร์ชันใหม่ล่าสุดได้ที่ https://github.com/docker/compose/releases
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
และเพิ่ม Permission
sudo chmod +x /usr/local/bin/docker-compose
จากนั้นทดสอบการติดตั้งด้วยคำสั่ง จะแสดงเวอร์ชันของ Docker Compose
docker-compose --version

วิธีการสร้าง Docker Image สำหรับ PHP Development

1. ในครั้งนี้ได้เตรียมไฟล์ทั้งหมดที่จำเป็นสำหรับการรัน docker-compose เพื่อติดตั้ง PHP เวอร์ชัน 5.6 MySQL 5.7 พร้อม phpMyAdmin ไว้เรียบร้อยแล้ว โดยให้ดาวน์โหลดไฟล์ docker.zip (https://drive.google.com/open?id=1aWmV_V2KaQ3yQ7i7GW4H6XDsBq4qp6MF) ไปยังเครื่อง Linux ของท่าน แตกไฟล์จะได้ Folder ชื่อ docker ให้เข้าไปและคลิกขวาเลือก Open in Terminal จากนั้นสั่งรัน
docker-compose up -d

2. ทดสอบการเข้าถึงเว็บไซต์ ด้วยการพิมพ์ 127.0.0.1/phpinfo.php ลงใน Web Browser และ 127.0.0.1:8080 สำหรับเข้าถึง phpMyAdmin หรือเปลี่ยน 127.0.0.1 เป็น IP Address ของเครื่อง Linux ของเรา
โดยโครงสร้างในการเก็บไฟล์ที่เกี่ยวข้องทั้งหมดเป็นดังนี้
|- docker
   | docker-compose.yml  <<  สำหรับแก้ไขปรับแต่งการสร้าง Server
   |- www
       |- html  << ที่สำหรับวางไฟล์ Web
          | phpinfo.php  << ตัวอย่างไฟล์เว็บเพื่อเรียกดูการตั้งค่า PHP
   |- mysql
      |- initdb  << หากมีไฟล์ .sql ที่ต้องการ Import ให้ใส่ไว้ที่นี้ก่อนสั่งรันข้อ 1
      |- data  << ที่เก็บไฟล์ฐานข้อมูล
      |- backup << ที่สำหรับเก็บไฟล์ SQL Dump เพื่อ Backup ในอนาคต

3. ตรวจสอบสถานะการทำงานของ Container ทั้งหมด
docker ps

4. หากต้องการลบ Image ทั้งหมดที่สร้างขึ้น
docker-compose down

สรุป

สำหรับในครั้งนี้เน้นไปที่การติดตั้ง และตัวอย่างการสร้างสภาพแวดล้อมสำหรับการเขียนโปรแกรม PHP โดยหากทำตามข้างต้นจะเห็นได้ว่าเพียงไม่กี่ขั้นตอนเราก็จะได้เครื่อง Server ที่พร้อมสำหรับการทำงานแล้ว โอกาสต่อไปจะแนะนำการเขียน docker-compose เพื่อปรับแต่งค่า Server ของเราให้เหมาะสมและสะดวกต่อการทำงานของเรามากยิ่งขึ้น ถ้าหากพบปัญหา หรือ มีข้อสงสัยใดๆ สามารถติดต่อผู้เขียนได้ทุกเมื่อครับ

Ref

Popular posts from this blog

เริ่มต้นใช้งาน Google Colab

Update Python Version in Google Colab