![docker logo docker](http://www.doanytech.com/wp-content/uploads/2020/10/docker-logo-e1530315109981.png)
Docker Overview
Docker ช่วยให้คุณสามารถแยกแอปพลิเคชันของคุณออกจากโครงสร้างพื้นฐานเพื่อให้คุณสามารถส่งมอบซอฟต์แวร์ได้อย่างรวดเร็วด้วย Docker
![](http://www.doanytech.com/wp-content/uploads/2020/10/docker-logo-1-1024x302.png)
คุณสามารถจัดการโครงสร้างพื้นฐานของคุณในลักษณะเดียวกับที่คุณจัดการแอปพลิเคชันของคุณ ด้วยการใช้ประโยชน์จากวิธีการของ Docker สำหรับ shipping, testing, and deploying code quickly คุณสามารถลดความล่าช้าระหว่างการเขียนโค้ดและการรันโค้ดใน Production.
แล้ว Docker คืออะไร
Docker คือ เครื่องมือสำหรับการจัดการ Container โดยการจำลองสภาพแวดล้อมเฉพาะให้กับซอฟต์แวร์นั่นๆ และยังช่วยให้นักพัฒนาสามารถจัดการกับแอปพลิเคชันและเครื่องมือต่างๆภายใน Docker Image เองได้ ด้วยการทำงานภายใต้ข้อกำหนดตามมาตราฐานของ Docker ทำให้นักพัฒนาสามารถมั่นใจได้ว่าซอฟต์แวร์นั่นจะสามารถทำงานได้ดีในทุกๆ platform
![](http://www.doanytech.com/wp-content/uploads/2020/10/docker-containerized-appliction-blue-border_2-1024x818.png)
- Docker Image
ต้นแบบของ Container ภายในจะประกอบด้วย application หรือเครื่องมือต่างๆที่ใช้ในการรัน software นั่นๆ เช่น code, runtime, system tools, system libraries and settings และเมื่อทำการรัน Docker Image บน Docker Engine ก็จะได้ Container - Docker container
เปรียบเสมือนกล่อง ซึ่งสามารถนำ Docker Image มาติดตั้ง เพื่อให้สามารถเรียกใช้งาน software ที่ต้องการได้ โดยที่เราสามารถสั่ง start หรือ stop container ได้
Docker เป็นที่รู้จักกันอย่างแพร่ เนื่องจากสามารถใช้งานได้อย่างสะดวกและตอบสนองความต้องการของ และช่วยลดความซับซ้อนในการพัฒนาแอปพลิเคชัน การทดสอบ และการติดตั้งระบบอีกด้วย
Docker Architecture
Docker ใช้ สถาปัตยกรรมแบบไคลเอนต์เซิร์ฟเวอร์ โดยที่ Docker client จะพูดคุยกับ Docker daemon ซึ่งทำหน้าที่ building, running and distributing Docker containers ของคุณ และคุณสามารถรัน Docker client และ Docker daemon บนระบบเดียวกัน หรือคุณจะเชื่อมต่อ Docker client กับ Docker daemon โดยการสื่อสารผ่านทาง REST API บน UNIX sockets หรือ a network interface
![](http://www.doanytech.com/wp-content/uploads/2020/10/env_docker.png)
- Docker daemon จะรับฟังคำขอจาก Docker API และจัดการ Docker objects เช่น images, containers, networks, and volumes daemon ยังสามารถสื่อสารกับ daemons อื่น ๆ เพื่อบริการจัดการ Docker ได้
- Docker client เป็นวิธีที่ผู้ใช้ Docker จำนวนมากใช้ในการติดต่อกับ Docker เมื่อคุณใช้คำสั่ง เช่น docker run ไคลเอนต์จะส่งคำสั่งเหล่านี้ไปยัง dockerd ซึ่งจะดำเนินการ คำสั่ง docker ผ่านทาง Docker API โดยที่ Docker client สามารถสื่อสารกับ daemon ได้มากกว่าหนึ่งตัว
- Docker registries เป็นที่เก็บ Docker images โดยที่ Docker Hub เป็น public registry ที่ทุกคนสามารถใช้ได้ และ Docker ได้ตั้งค่าการค้นหา images ไว้บน Docker Hub และคุณสามารถเรียกใช้ private registry ของคุณเองก็ได้
เมื่อคุณใช้คำสั่ง docker pull หรือ docker run, Docker images จะถูกดึงมาจาก Registry ที่กำหนดไว้ และเมื่อคุณใช้คำสั่ง docker push, Docker images ก็จะถูกส่งไปยัง Registry
ทำไมต้อง Docker
- ไม่จำเป็นต้องติดตั้ง OS
- Portable Anywhere – Docker ได้กำหนดมาตรฐานสำหรับ Container ไว้ ดังนั้นเราจึงใช้งาน Container ได้ทุก Platform
- Lightweight – ตัว Container ไม่จำเป็นต้องมี OS เพื่อใช้ติดต่อกับแอปพลิเคชัน จึงทำให้ประสิทธิภาพของเซิร์ฟเวอร์สูงขึ้นและช่วยลดต้นทุนได้
Leave a Reply