บันทึก note เรื่อง Docker

บันทึกเอาไว้กันลืมส่วนตัวไม่เน้นการเผยแพร่ความรู้ ใครอ่านรู้เรื่องไม่รู้เรื่องก็ไม่เกี่ยวนะ

ติดตั้ง

เครื่องที่ใช้ควรเป็น Windows 10 Pro ขึ้นไป Download ตัว Docker Community Edition for Windows มาติดตั้งลงเสร็จเครื่องจะบังคับเปิด Hyper-V ก็ yes ไป ถ้ามัน restart มาแล้วเปิดไม่ได้ก็ให้เข้าไป config ที่ BIOS ของเครื่อง

หน้า About Docker
หน้า About Docker

เสร็จแล้วติดตั้ง Kitematic คือ GUI ช่วยติดตั้งแก้ไข Container บน Docker Download มาแล้ว Unzip Folder ไปวางไว้ที่
C:\Program Files\Docker

ตัว Kitematic เวลาเรียกใช้งาน
ตัว Kitematic เวลาเรียกใช้งาน

แค่นี้ก็พร้อมใช้งานล่ะ

Command ของ Docker

docker ps เอาไว้ดู Process ว่ามี Container ตัวไหน Run อยู่บ้าง
docker ps -a ดู process ทั้งหมด
docker start ชื่อ container สั่ง start container
docker stop ชื่อ container สั่ง stop container
docker rm ชื่อ container สั่งลบ container นั้นทิ้ง

Command เกี่ยวกับการสร้าง Container (แบบจัดมาแล้วว่าโอ)

– สร้าง DB Network

– สร้าง Container MYSQL

สั่ง Docker run กำหนดชื่อ Container MySQL นี้ว่า serverDB กำหนดให้อยู่วงเดียวกับ NetworkDB กำหนด password ของ root mysql คือ 123456 และกำหนด path ที่เก็บข้อมูลในเครื่องไว้ที่ C:\webdev\mysql\

– สร้าง Container phpMyAdmin

สั่ง Docker run กำหนดชื่อเป็น myadmin กำหนดให้อยู่วงเดียวกับ NetworkDB และตั้งค่าตัวแปร PAM_HOST ให้เรียก serverDB และกำหนดการ forward port จากข้างนอกเข้าไปหาข้างใน จาก 8080 -> 80 ตอนนี้ก็จะได้ phpMyAdmin อยู่ที่ URL http://127.0.0.1:8080

หน้า phpMyAdmin ที่สร้างจาก Container ของ Docker
หน้า phpMyAdmin ที่สร้างจาก Container ของ Docker

– สร้าง Container Apache

สั่ง Docker run กำหนดชื่อเป็น webapache กำหนดให้อยู่วงเดียวกับ NetworkDB และตั้งค่าให้ map path ของ web ไว้ที่ C:\webdev\webapache\htdocs และค่า config apache ต่างๆไว้ที่ C:\webdev\webapache\config  ตอนนี้ก็จะได้ webapache อยู่ที่ URL http://127.0.0.1:8081  Download Config ไปใช้ (อย่าลืม copy config ไปวางตาม path ก่อน run container ไม่งั้น error)

Apache Container ขึ้นมาเรียบร้อย
Apache Container ขึ้นมาเรียบร้อย
ลองเอา phpinfo ไปวางไว้
ลองเอา phpinfo ไปวางไว้

– สร้าง Container nginx

สั่ง Docker run กำหนดชื่อเป็น webnginx กำหนดให้อยู่วงเดียวกับ NetworkDB และตั้งค่าให้ map path ของ web ไว้ที่ C:\webdev\webnginx\htdocs และค่า config nginx ต่างๆไว้ที่ C:\webdev\webnginx\config  ตอนนี้ก็จะได้ webnginx อยู่ที่ URL http://127.0.0.1:8082  Download Config ไปใช้ (อย่าลืม copy config ไปวางตาม path ก่อน run container ไม่งั้น error)

nginx container รันขึ้นมาแล้ว
nginx container รันขึ้นมาแล้ว
เอา phpinfo ไปวางซะหน่อย
เอา phpinfo ไปวางซะหน่อย

– กรณีแยกวง Network หลายวงก็ให้สร้างเพิ่มเช่น สร้าง WEB Network

– บังคับ MYSQL ให้อยู่บน NetworkWEB ด้วยก็บังคับไป

– ขอดู NetworkDB หน่อยว่ามีอะไรอยู่ในนั้นบ้าง

ค่าที่ได้จะ return เป็น json

inspect ออกมาดู
inspect ออกมาดู

บางคำสั่งสามารถกดทำผ่าน Katematic ได้เลยเช่น start , stop , restart , delete พวก create container ก็ทำได้แต่ไม่ละเอียดเท่าการทำผ่าน command line

กรณีถ้าต้องการ remote เข้าไปใน container นั้นๆ วิธีง่ายสุดกดผ่าน Katematic เข้าไป (จำ command ไม่ได้ไว้หาเจอค่อยมา update ให้)

กดเลือก container แล้วกด EXEC
กดเลือก container แล้วกด EXEC
จะ Remote เข้าไปใน Container นั้นๆจะทำอะไรก็ได้เหมือน Linux ตัวนึงปกติ
จะ Remote เข้าไปใน Container นั้นๆจะทำอะไรก็ได้เหมือน Linux ตัวนึงปกติ

ประมาณนี้แหล่ะ

ลงใน notebook ใช้ dev งานแทน appserv , xampp หรือ apache , php , mysql ของแท้แล้ว ok ไหม

Docker กิน Resource แค่นี้แหล่ะ ก็ โออยู่นะ
Docker กิน Resource แค่นี้แหล่ะ ก็ โออยู่นะ

ok จบ

ความคิดเห็น