ภาพรวมหลักสูตร ยุคปัจจุบันการพัฒนาแอพพลิเคชั่น มีความหลากหลายทั้ง Desktop, Web, Mobile Application ซึ่งในกระบวนการพัฒนาแอพพลิเคชั่นเหล่านี้ล้วนต้องการติดตั้งเครื่องมือและสภาพแวดล้อมๆ ต่างบนเครื่องของเราก่อนเสมอ บ่อยครั้งที่พบปัญหาว่าเราไม่สามารถลงโปรแกรมหรือภาษาในการพัฒนาต่างเวอร์ชั่นกันได้ในเครื่องเดียว
ทำให้เกิดความยุ่งยากในการเซ็ตอัพเครื่องมือและปัญหาที่สำคัญคือเมื่อเรานำแอพพลิเคชั่นของเราขึ้นไปทำงานจริงบนเครื่อง production ก็มักพบว่าสภาพแวดล้อมดันไม่เหมือนในเครื่องที่เราใช้ dev ไว้อีก ทำให้ต้องมาไล่แก้ปัญหาทั้งฝั่ง dev และฝั่ง production ให้สอดคล้องกัน ซึ่งค่อนข้างเสียเวลาไปมากในส่วนนี้
ปัญหาดังกล่าวจะหมดไปเมื่อเราลองหันมาใช้ซอฟต์แวร์ช่วยจัดการเรื่องนี้อย่าง Docker ซึ่งเป็นแพลตฟอร์มซอฟต์แวร์ที่ช่วยให้คุณสร้าง ทดสอบ และติดตั้งแอปพลิเคชันใช้จริงได้อย่างรวดเร็ว Docker จะบรรจุซอฟต์แวร์ลงไปในหน่วยที่เป็นมาตรฐานเรียกว่า คอนเทนเนอร์ ซึ่งจะมีทุกสิ่งที่ซอฟต์แวร์ต้องใช้ในการเรียกใช้งาน รวมทั้งไลบรารี เครื่องมือสำหรับระบบ โค้ด และรันไทม์ เมื่อใช้ Docker คุณจะสามารถติดตั้งใช้จริงและปรับขนาดแอปพลิเคชันให้เหมาะกับทุกสภาพแวดล้อม
สิ่งที่คุณจะได้รับ สามารถใช้ Docker สร้าง ทดสอบ และติดตั้งแอปพลิเคชันใช้จริงได้อย่างรวดเร็ว เข้าใจความแตกต่างระหว่าง Virtual Machine และ Docker Container สามารถสร้างและจัดการ Docker Image และ Container ได้ สามารถสร้าง Custom Image ด้วย Dockerfile และจัดการ Network และ Volume ได้ สามารถใช้ Docker Compose จัดการหลาย Container ได้ หลักสูตรนี้เหมาะสำหรับ Developers นักพัฒนาที่ต้องการให้สภาพแวดล้อมบนเครื่อง dev และ production ตรงกัน กลุ่มผู้สนใจทั่วไป พื้นฐานของผู้เข้าอบรม การใช้งานคอมพิวเตอร์พื้นฐาน ใช้ระบบ Windows หรือ OSX ได้ พื้นฐานการค้นหาข้อมูลบนอินเตอร์เน็ต
หัวข้อการฝึกอบรม เปิดทั้งหมด Module 1 การเตรียมเครื่องมือและความพร้อมทั้งบน Mac และ Windows
แนะนำสเปกและคุณสมบัติเครื่องที่จะติดตั้งเครื่องมือสำหรับ docker
ขั้นตอนการติดตั้ง Docker desktop บน Windows 10 Pro
การติดตั้ง Docker desktop บน MacOS
ติดตั้ง Visual Studio Code และส่วนเสริม Docker ที่จำเป็น
Module 2 แนะนำภาพรวมการใช้งาน Docker
ความแตกต่างระหว่าง Virtual Machine และ Docker Container
ทำไมต้องใช้ Docker และ Containers
โครงสร้างและสถาปัตยกรรมของ Docker
Workflow ในการทำงานกับ Docker
เริ่มต้นใช้งาน Hello World Docker กัน
Module 3 รู้จัก Docker Images และ Containers
รู้จัก Docker Images และการนำมาใช้งาน
เริ่มต้นสร้าง Container แรกจาก Images ที่ดึงมา
การ Stop และ Start Container
การแสดงข้อมูลของ Container
Life Cycle ของ Container
การส่งคำสั่งไปยัง Container ที่กำลังทำงาน
Port Mapping ให้กับ Container
การกำหนดชื่อให้กับ Container ที่สร้างขึ้น
การแสดง Log ของ Container
การบริหารและจัดการ Images
สรุปคำสั่งพื้นฐานที่จำเป็นในการทำงานกับ Docker
Module 4 การสร้าง Custom Images
ทำความเข้าใจกับชั้นของ Images (Image Layers)
รู้จัก Dockerfile และเริ่มต้นสร้างใช้งาน
การ Build image จาก Dockerfile
การกำหนด Working Directory
การใช้งาน Network ใน Docker
การเพิ่ม Container เข้าไปยัง Network
แนวทางการสั่งให้ Container ทำงานพร้อมกับกำหนด Networks
การตั้งชื่อให้กับ Custom image ที่สร้างขึ้น
การเก็บข้อมูลและไฟล์ต่างๆ บน Volume
การทำ Bind Mount และ Named Volume
Module 5 รู้จัก Docker Compose และการจัดการ
Docker Compose คืออะไร?
เริ่มต้นสร้าง Docker compose แรกกัน
โครงสร้างส่วนต่างๆ ใน Docker Compose ไฟล์
เริ่ม Build Image แรกจาก Docker compose กัน
Workshop สร้าง Docker compose สำหรับ Run WordPress CMS
Workshop สร้าง Docker compose สำหรับ Run Python Django
Module 6 Workshop การสร้าง Custom Image Node.js + MongoDB + React + Nginx
เริ่มต้นสร้าง Dockerfile
ทำการ Build image จาก Dockerfile ที่สร้างขึ้น
การ Config Node.js บน docker
การกำหนดตัวแปร env ต่างๆ สำหรับฐานข้อมูล MongoDB
การตรวจสอบฐานข้อมูล MongoDB บน Docker
การเชื่อมต่อ Node.js กับ MongoDB
ทดสอบเขียน API ใน Node.js
เขียนส่วน Frontend ด้วย React JS
เชื่อมต่อ API จาก frontend ด้วย Axios
แนวทางแก้ปัญหาเรื่อง CORS
แสดงผลข้อมูลจาก API บน Reactjs
แนวทางการ Config React+nginx บน Production
Module 7 Workshop การสร้าง Custom Image LAMP Stack (Linux+PHP+Apache+MySQL)
เริ่มต้นสร้างไฟล์ Docker Compose ใหม่
กำหนดโครงสร้างสำหรับ PHP+Apache
กำหนดตัวแปรต่างๆ สำหรับฐานข้อมูล MySQL
การเชื่อมต่อ PHP กับ MySQL บน Docker
ทดสอบเขียน API ใน PHP
ทดสอบเรียกใช้งาน API ทั้งส่วนเพิ่ม ลบ แก้ไข เรียกดูข้อมูล (CRUD)
การตั้งค่า Apache+PHP+MySQL ใน Docker สำหรับ Production
Module 8 Workshop การสร้าง Custom Image สำหรับโปรเจ็กต์ Laravel 10 (PHP Dockerized Project)
สร้างไฟล์ docker-compose.yml
กำหนดตัวแปรต่างๆ สำหรับ Laravel app service ใน Dockerfile
กำหนดค่า Nginx service
กำหนดค่า MySQL service
ทดสอบสร้าง Images สำหรับ Laravel 10
ทดสอบเขียน API ใน Laravel 10
ทดสอบเรียกใช้งาน API ทั้งส่วนเพิ่ม ลบ แก้ไข เรียกดูข้อมูล (CRUD)
การตั้งค่า Laravel 10 สำหรับ Production
Module 9 การเผยแพร่ (Deploy) สู่ Docker Hub
รู้จัก Docker Registry
การใช้งาน Docker Hub พื้นฐาน
การ tag image ไฟล์ที่มีอยู่บนเครื่องเรา
การส่งไฟล์ Image (Push) ขึ้นไปยัง Docker Hub
การ pull docker images ของเราไปใช้ที่อื่น
การเชื่อมต่อ Docker Hub กับ Github ของเรา
แนวทางการ Automated build จาก Github
รอบอบรมและรูปแบบการอบรม สำหรับบุคคล — รอบอบรมทั่วไป
ขณะนี้ยังไม่มีรอบอบรมเปิดรับสมัคร ลงชื่อจองไว้ได้เลย ทีมงานจะติดต่อกลับเป็นกลุ่มแรกเมื่อเปิดรอบถัดไป หรือสอบถามทางไลน์ หรือโทร 02-570-8449 หรือ 088-807-9770
สำหรับองค์กร — In-house / Private Training ปรับเนื้อหาให้ตรงกับเครื่องมือและงานจริงของทีม เลือกวันเอง อบรมที่บริษัทหรือออนไลน์สด ออกใบเสนอราคาในนามนิติบุคคลให้ฝ่ายจัดซื้อ ขอใบเสนอราคาอบรมองค์กร คำถามที่พบบ่อย Docker Container กับ Virtual Machine ต่างกันอย่างไร Virtual Machine จำลองเครื่องทั้งเครื่องรวมถึงระบบปฏิบัติการของตัวเอง จึงใช้หน่วยความจำและพื้นที่มากและบูตช้า ส่วน Container ใช้เคอร์เนลของระบบปฏิบัติการเครื่องหลักร่วมกัน แล้วแยกเฉพาะแอปพร้อมไลบรารีที่ต้องใช้ออกจากกัน จึงมีขนาดเล็ก เริ่มทำงานได้ในไม่กี่วินาที และรันได้หลายตัวบนเครื่องเดียว Container จึงเหมาะกับการทำให้สภาพแวดล้อม Dev และ Production ตรงกัน ส่วน VM เหมาะเมื่อต้องการระบบปฏิบัติการคนละตัวหรือแยกขาดกันมากกว่า
สร้าง Docker Image ของตัวเองด้วย Dockerfile มีขั้นตอนอย่างไร เริ่มจากสร้างไฟล์ชื่อ Dockerfile ในโฟลเดอร์โปรเจกต์ ใช้ FROM เลือก Base Image เช่น node หรือ php ตามด้วย WORKDIR กำหนดโฟลเดอร์ทำงาน COPY ไฟล์ที่จำเป็นเข้าไป RUN คำสั่งติดตั้งแพ็กเกจ EXPOSE พอร์ตที่แอปใช้ และ CMD กำหนดคำสั่งเริ่มแอป จากนั้นสั่ง docker build -t myapp ในโฟลเดอร์นั้น แล้วจึงทดสอบด้วย docker run -p เพื่อจับคู่พอร์ตกับเครื่องหลัก
Docker Compose คืออะไร ใช้ตอนไหน Docker Compose คือเครื่องมือที่ใช้ไฟล์ YAML เพียงไฟล์เดียว เช่น compose.yaml หรือ docker-compose.yml อธิบายทุก Service ที่แอปต้องใช้ เช่น เว็บเซิร์ฟเวอร์ แอป และฐานข้อมูล พร้อม Port, Volume, Network และตัวแปร Environment แล้วสั่ง docker compose up -d ให้ทุกตัวทำงานพร้อมกัน เหมาะกับระบบที่มีหลาย Container อย่าง WordPress กับ MySQL หรือ Laravel กับ Nginx และ MySQL
หลักสูตร Basic Docker 2022 เหมาะกับใคร ต้องมีพื้นฐานอะไรมาก่อน เหมาะกับนักพัฒนาที่ต้องการให้สภาพแวดล้อมบนเครื่อง Dev และ Production ตรงกัน และผู้สนใจทั่วไปที่อยากเริ่มใช้ Docker ไม่ต้องเคยใช้ Docker มาก่อน ขอเพียงใช้งานคอมพิวเตอร์พื้นฐานได้ ใช้ Windows หรือ macOS ได้คล่อง และค้นหาข้อมูลบนอินเทอร์เน็ตเป็น
เรียนจบหลักสูตร Basic Docker 2022 แล้วทำอะไรได้บ้าง สร้างและจัดการ Image กับ Container ได้ทั้งการรัน หยุด ดู Log และจับคู่ Port เขียน Dockerfile สร้าง Custom Image จัดการ Network และ Volume ใช้ Docker Compose รันระบบหลาย Container เช่น WordPress, Node.js กับ MongoDB, LAMP Stack และ Laravel และ Push Image ขึ้น Docker Hub ได้ ผู้ผ่านการอบรมได้รับใบประกาศนียบัตร (Certificate of Completion) ที่มีเลขที่ของตัวเองและตรวจสอบออนไลน์ได้
หลักสูตร Basic Docker 2022 ใช้โปรแกรมอะไรบ้าง หลักสูตรนี้ใช้ Docker Desktop บน Windows หรือ macOS ร่วมกับ Visual Studio Code และส่วนเสริมสำหรับ Docker ช่วงแรกของการอบรมมีแนะนำสเปกเครื่องและขั้นตอนติดตั้งบนแต่ละระบบ และในส่วนสุดท้ายใช้ Docker Hub เผยแพร่ Image จึงควรสมัครบัญชี Docker Hub ไว้ด้วย