Difference between revisions of "Docker"
From CMU ITSC Network
| Line 31: | Line 31: | ||
== Work Shop 1 : pull image ==  | == Work Shop 1 : pull image ==  | ||
| + | เปิด powshell ขึ้นมา แล้วพิมพ์คำสั่งในการ pull image  | ||
<syntaxhighlight lang=powershell>  | <syntaxhighlight lang=powershell>  | ||
| − | docker   | + | docker pull mysql:latest  | 
| + | docker pull ubuntu:latest  | ||
| + | docker pull alpine  | ||
| + | </syntaxhighlight>  | ||
| + | |||
| + | แสดง image ที่อยู่บนเครื่อง  | ||
| + | <syntaxhighlight lang=powershell>  | ||
| + | docker images  | ||
| + | </syntaxhighlight>  | ||
| + | <syntaxhighlight lang=powershell>  | ||
| + | REPOSITORY                 TAG                    IMAGE ID            CREATED             SIZE  | ||
| + | mysql                      latest                 91dadee7afee        2 days ago          477MB  | ||
| + | ubuntu                     latest                 47b19964fb50        4 weeks ago         88.1M  | ||
| + | alpine                     latest                 caf27325b298        5 weeks ago         5.53MB  | ||
</syntaxhighlight>  | </syntaxhighlight>  | ||
Revision as of 08:39, 7 March 2019
Docker คืออะไร
- Software Container เป็นการสร้างสภาพแวดล้อมสำหรับ software โดยแยกออกออกมาเพื่อไม่ให้กวนกับ software อื่น ๆ บนระบบปฏิบัติการเดียวกัน สามารถนำ Container ไปทำงานบนเครื่องไหนก็ได้จะได้ผลเหมือนกัน
 - Docker เป็น engine ในการจัดการ Software Container ที่ใช้งานได้ง่าย ไม่ซับซ้อน เป็นที่แพร่หลาย
 - Container VS VM

*image from https://www.docker.com 
ปัญหาที่เจอบ่อย
- ต้องติดตั้ง ตั้งค่า server ที่จะรัน Application
 - ไม่สามารถติดตั้งหรืออัพเกรด Library บางอย่างบน OS ได้เนื่องจากกระทบกับ Application อื่น
 - เครื่อง Dev กับ Production ไม่เหมือนกัน
 
Docker Architecture
Docker Engine
- Docker Client คือพวก CLI ของ Docker ที่ใช้ในการจัดการ
 - Docker Daemon คือ service ของ Docker ที่รันบน Server เราจะเรียก Server นี้ว่า Docker Machine
 
Docker Hub
- เป็น Repository หรือเรียกว่า Registry ทำหน้าที่ให้บริการ Docker Image มี Image ของผู้พัฒนาโปรแกรมต่าง ๆ ให้ใช้งาน มีการจัดเก็บ version ของ image อย่างเป็นระบบ มีเอกสารคู่มือการใช้งาน Image
 
โดยให้บริการที่ https://hub.docker.com ใช้งานได้ฟรี
- สามารถสร้าง Private Registry บน Server เองได้
 
Docker Image
- เป็น Template ที่สร้างขึ้นโดยนักพัฒนาเป็นชุดของ Software/Library สามารถดึง(pull)มาจาก Registry เพื่อใช้งานหรือสร้างขึ้นมาเองได้
 - เป็นไฟล์แบบอ่านอย่างเดียว
 
Docker Container
- คือ Image ที่ถูกรันขึ้นมาใช้งาน โดยจะมีสภาพแวดล้อมตาม Image ต้นแบบ
 - ไฟล์หรืออะไรที่ถูกสร้างขึ้นมาใน Container จะหายไปเมื่อมีการลบ Container
 - สามารถการเปลี่ยนแปลงใน Container กลับไปเป็น Image ได้เรียกว่า commit
 
Docker Machine
- Docker Desktop for Windows https://docs.docker.com/docker-for-windows/install/
 - Docker for Ubuntu https://docs.docker.com/install/linux/docker-ce/ubuntu/
 
Work Shop 1 : pull image
เปิด powshell ขึ้นมา แล้วพิมพ์คำสั่งในการ pull image
docker pull mysql:latest
docker pull ubuntu:latest
docker pull alpine
แสดง image ที่อยู่บนเครื่อง
docker images
REPOSITORY                 TAG                    IMAGE ID            CREATED             SIZE
mysql                      latest                 91dadee7afee        2 days ago          477MB
ubuntu                     latest                 47b19964fb50        4 weeks ago         88.1M
alpine                     latest                 caf27325b298        5 weeks ago         5.53MB