Skip to main content
0
DockerLibrary / Frameworkเทคโนโลยี

Docker แบบสั้น ๆ ใน 5 นาที

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

แต่ว่าการใช้ VM นั้นก็มีข้อจำกัดของมันคือ เครื่องคอมพิวเตอร์ของเราต้องใช้ทรัพยากรจำนวนมากเพื่อที่จะจำลองและรัน OS ไว้ใน VM หนึ่งตัว ทั้ง CPU, RAM และ ROM ที่ถูกใช้เหมือนมีคอมพิวเตอร์อีกเครื่องหนึ่งมาแบ่งใช้ทรัพยากรร่วมกัน เพียงแต่ว่าเอาไปให้โปรแกรมของเรารันเพียงตัวเดียว และจะแย่ยิ่งกว่านั้นอีกในตอนที่เราต้องการรันหลายโปรแกรม

ทั้งเรื่องการใช้ทรัพยากร ทั้งความเร็วในการเปิดและปิดโปรแกรมเหล่านั้น และก็ความยุ่งยากในการเข้าไปจัดการแก้ไข ซึ่งปัญหาทั้งหมดนี้เราจะสามารถหลีกเลี่ยงได้ด้วยการใช้ Docker

Docker มันทำงานยังไง ?

Docker เป็นแพลทฟอร์มที่เราสามารถนำโปรแกรม หรือ service ของเราไปรันไว้ได้ในรูปแบบของ container ซึ่ง Docker สามารถจัดเตรียมสภาพแวดล้อมที่เหมาะสมแก่การทำงานของโปรแกรมของเราไว้ให้ โดยที่แต่ละ container ที่บรรจุ service แต่ละอันของเราก็จะต้องใส่ library และสิ่งที่จำเป็นต่อการทำงานของ service ของเราเอาไว้ด้วย ทำให้เรามั่นใจได้ว่า service ของเราที่รันบน container นั้นจะเป็นอิสระต่อกัน ไม่แย่งทรัพยากรกัน และไม่ยุ่งเกี่ยวกันโดยสิ้นเชิง ดังนั้นหากเราต้องการทดสอบ service ตัวไหนเราเพียงแค่รัน container ตัวนั้นๆ เราก็จะได้ผลลัพธ์จาก service ตัวนั้นที่ไม่มีผลกระทบจากตัวอื่นอย่างแน่นอน และเพราะมีแค่ส่วนที่จำเป็นเท่านั้น ทำให้ container ของเรามีขนาดเล็กกว่า VM มากๆ

โดยส่วนประกอบหลักๆของ Docker คือ

  • Docker image : เปรียบเสมือน template ที่เราสร้างขึ้นเพื่อสร้าง container ที่บรรจุ service และสิ่งที่จำเป็นที่เพียงพอต่อการทำงานของ service ของเรา
  • Docker container : เปรียบเสมือนตู้ container ที่บรรจุโปรแกรม หรือ service ของเรา หากเราต้องการเรียกใช้ service ของเราเพียงแค่เปิดตู้ก็สามารถใช้งานได้ทันที

สรุปแล้วจริง ๆ Docker มันคืออะไร ? ดาวน์โหลด ติดตั้งยังไง

โดยสรุปแล้ว Docker นั้นก็คือแพลตฟอร์มที่รวมแอพพลิเคชันหรือก็คือโปรแกรมของเรา กับ Dependency ต่างๆเข้าไว้ด้วยกันในรูปแบบของ container เพื่อให้มั่นใจได้ว่าจะสามารถนำแอพพลิเคชันของเราไปรันที่ไหนก็ได้ โดยมีจุดเด่นคือ

  • ความง่าย (Simplicity) แม้จะเป็นแอพพลิเคชั่นที่มีความซับซ้อนก็สามารถใส่เข้าไปใน Docker ได้
  • ความรวดเร็ว (Agility) ตั้งแต่การติดตั้ง การเปิด/ปิดการใช้งาน หรือแม้กระทั้งการนำแอพพลิเคชันไปรันบนคลาวด์
  • ทางเลือกที่หลากหลาย (Choice) ทำให้สามารถเลือกสร้างแอพพลิเคชันโดยใช้ ภาษา เฟรมเวิร์ค หรือระบบปฏิบัติการณ์ที่หลากหลายได้ และยังนำไปติดตั้งกับผู้ให้บริการคลาวด์ได้ทุกที่อีกด้วย

ก็น่าจะพอได้เห็นแล้วว่า Docker คืออะไร และมีจุดเด่นยังไงบ้าง คราวนี้มาดูวิธีการดาวน์โหลดและติดตั้งกัน
สำหรับ Windows 10 และ Mac สามารถดาวน์โหลดตัวติดตั้งมาลงได้เหมือนโปรแกรมทั่วไปโดยโหลดได้จากลิงค์นี้

สำหรับ Ubuntu สามารถติดตั้งได้หลายวิธี โดยจะขอยกตัวอย่างการติดตั้งด้วย script ที่ Docker สร้างไว้ให้

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

เมื่อติดตั้ง Docker แล้ว เราสามารถทดสอบได้ด้วยการรันคำสั่ง

docker --version

ถ้า Docker ติดตั้งอย่างถูกต้องก็จะแสดงเลขเวอร์ชันออกมาเช่น

“Docker version 19.03.5, build 633a0ea”

เรามาลองใช้งาน docker กันเลย ลองรันคำสั่งด้านล่างนี้ดู

docker run hello-world

จะได้ผลลัพธ์ออกมาแบบนี้

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

จากผลลัพธ์ก็จะเห็นว่ามีการอธิบายขั้นตอนการทำงานจากคำสั่งที่เราพิมพ์ลงไปไว้ให้ ว่าขั้นตอนเบื้องหลังนั้นทำอะไรบ้างจนออกเป็นผลลัพธ์นี้ออกมา

สุดท้ายนี้สำหรับใครที่สนใจ Docker แต่ยังไม่อยากดาวน์โหลดมาติดตั้งในเครื่อง ทาง Docker ก็มีพื้นที่สำหรับให้ลองเข้าไปเล่นได้ที่ https://labs.play-with-docker.com/ โดยต้อง login ด้วย Account ของ Docker ซึ่งสามารถเข้าไปสมัครได้ที่ลิงค์นี้ https://hub.docker.com/signup หลังจากสมัครและกดยืนยันอีเมลแล้ว ก็สามารถเข้าไปลองเล่นได้เลย

docker-play-ground
ขอบคุณข้อมูลและรูปภาพจาก docker.com

Develeper

Author Develeper

More posts by Develeper

เราใช้คุกกี้เพื่อพัฒนาประสิทธิภาพ และประสบการณ์ที่ดีในการใช้เว็บไซต์ของคุณ คุณสามารถศึกษารายละเอียดได้ที่ นโยบายความเป็นส่วนตัว และสามารถจัดการความเป็นส่วนตัวเองได้ของคุณได้เองโดยคลิกที่ ตั้งค่า

ตั้งค่าความเป็นส่วนตัว

คุณสามารถเลือกการตั้งค่าคุกกี้โดยเปิด/ปิด คุกกี้ในแต่ละประเภทได้ตามความต้องการ ยกเว้น คุกกี้ที่จำเป็น

ยอมรับทั้งหมด
จัดการความเป็นส่วนตัว
  • คุกกี้ที่จำเป็น
    เปิดใช้งานตลอด

    ประเภทของคุกกี้มีความจำเป็นสำหรับการทำงานของเว็บไซต์ เพื่อให้คุณสามารถใช้ได้อย่างเป็นปกติ และเข้าชมเว็บไซต์ คุณไม่สามารถปิดการทำงานของคุกกี้นี้ในระบบเว็บไซต์ของเราได้
    รายละเอียดคุกกี้

  • คุกกี้สำหรับการติดตามทางการตลาด

    ประเภทของคุกกี้ที่มีความจำเป็นในการใช้งานเพื่อการวิเคราะห์ และ นำเสนอโปรโมชัน สินค้า รวมถึงหลักสูตรฟรี และ สิทธิพิเศษต่าง ๆ คุณสามารถเลือกปิดคุกกี้ประเภทนี้ได้โดยไม่ส่งผลต่อการทำงานหลัก เว้นแต่การนำเสนอโปรโมชันที่อาจไม่ตรงกับความต้องการ
    รายละเอียดคุกกี้

บันทึกการตั้งค่า