ติดตั้ง Docker ฉบับโหลดปั๊ปเปิดปุ๊ป!!

Thepnatee Phojan
3 min readDec 29, 2018

--

Docker: An Explanation for Beginners

สวัสดีจ้า…. สำหรับใครไม่แน่ใจว่า Docker คืออะไรงั้นมาสรุปก่อนจะไปติดตั้งแบบ ปุ๊ปปั๊ป.. กัน

Docker

Docker ก็เป็น Software Container ที่ถูกพัฒนาขึ้นมาให้สามารถการจัดการ Container ได้ง่าย Image มีขนาดเล็ก แยกเป็นชั้นๆ สร้างแนวคิด build, ship, run ที่แต่ละรอบของการสร้าง Container เร็วขึ้นมาก ทำให้เป็นที่สนใจและกำลังแพร่หลายในกลุ่ม Developer และ System Admin หรือ สามารถเข้าใจก่อนว่า Docker Software Container คืออะไรได้ตามนี้ก่อนเลย

เริ่มต้นใช้งาน Docker

มาเริ่มการติดตั้งกัน ก็ไม่มีอะไรมากเลย แค่ติดตั้งได้เพียงไม่กี่ขั้นตอนตามนี้ครับ

  1. เข้า link Docker for Mac หรือ Docker for Windows ได้เลยน้า

2.เลือก OS ของท่านได้เลยครับ (ของผมเป็น Mac เลือก “Download for Mac”)

3. กรณีที่เราไม่ได้ Login กดตรง “Please login To Download” เลยจ้ะ แต่ก็แอบมี require เล็กๆน้อยๆ ตัวอย่าง

- Mac อย่างน้อยก็ Mac OS Sierra 10.12 ขึ้นไปครับ
- Windows รุ่น Home จะไม่สามารถติดตั้ง Docker for Windows ได้ (เนื่องจากต้องใช้ Microsoft Hyper-V ในการรัน) ให้เปลี่ยนไปติดตั้ง Docker Toolbox แทน

Docker Desktop for Mac
Docker Desktop for Windows

4. ให้ทำการ Login เข้าใช้งาน เพื่อ Dowload แต่ถ้าใครยังไม่มี ไปสมัครเดี๋ยวนี้!!! ค่อยมาคุยกันน ฮา ๆ

5. เมื่อ login เสร็จแล้ว ก็สามารถ กดปุ่ม “Get Docker”

6. โหลดลงมาแล้ว ติดตั้ง เรียบร้อยแล้วจะเห็นพี่วาฬดังภาพ สำหรับการใช้งาน Docker นั้นจะต้องใช้คำสั่งในการสั่งงาน ผ่าน Command Line
เมื่อติดตั้งเสร็จ ลองดูเวอร์ชั่นกันก่อนเลย ด้วยคำสั่งง่ายๆนี้

docker version หรือ docker -v
Menu Docker Desktop for Mac

ติดตั้งสำเร็จแล้วคร้าบบ … คราวนี้มาลองสร้าง Container กันเล่นๆก่อนนะครับ

การสร้าง Container

มาถึงขั้นตอนสำคัญ ก็คือการสร้าง Container โดยใช้คำสั่ง docker run เพื่อสร้าง Docker Container

docker run --name demo -d -p 81:80 -v /home/me:/home/docker image

ตัวอย่าง

docker run --name webphp -d -p 81:80  -v /Users/myweb/:/var/www/html/ registry.gitlab.com/thepnatee.p/webapp:tag bash

มันก็อาจจะออกดูยาวๆไปใช่มะครับ เนื่องจากมันต้องมี option เข้าไปใน
docker run ด้วยนั้นเองครับ

--name demo คือ การตั้งชื่อให้กับ container โดยเมื่อเราใช้คำสั่ง start stop หรือ rm สามารถสั่งงาน container ได้จากชื่อ container ได้เช่นกัน-d เป็นการสั่ง contianer ให้รันแบบ background-v /home/me:/home/docker คือการ mount volume หรือเป็นการแชร์ไฟล์ระหว่าง container กับเครื่องเราให้สามารถเรียกใช้ไฟล์ร่วมกันได้-p 81:80 เป็นการ map port ระหว่างเครื่อง และ container เช่น อย่าง container ของ php จะใช้ port 80 เป็น default หากต้องการให้เครื่องใช้ port 81 เราก็กำหนดให้เป็น -p 81:80image ชื่อของ Docker image ที่เราต้องการเรียกใช้ (ผมได้ทำ image ของตัวเองเป็น php apache 2.4.18 ไว้ครับ)

Port ที่เรากำหนดด้วย -p สามารถเข้าถึงได้จาก IP Address ของเครื่อง ให้ลองทำ การพิมพ์ http://localhost:81/ โดย Container ที่เราลองรันอยู่เป็น Web Server เพราะฉะนั้นจะต้องมาลองเปิดดูใน browser พบว่าสามารถใช้งานได้แล้ว

localhost:81

ตรวจสอบสถานะ Container กัน

docker ps (ตรวจดู Container ที่ทำงานอยู่)
docker ps -a (ตรวจดู Container ที่ทำงานและไม่ทำงานอยู่ทั้งหมด)
คำสั่ง docker ps -a

จะสังเกตได้ว่ามี Container ที่ชื่อว่า webphp กำลังทำงานอยู่ โดยทุกๆ Container ก็จะมี Container ID เป็นของตัวเอง และเราสามารถสั่งงาน start, stop, rm ได้ด้วยการเรียกผ่าน Container ID

หยุด Container
เมื่อต้องการให้ container หยุดทำงานจะต้องใช้คำสั่ง docker stop ตามด้วย Container ID หรือ Name ที่ใช้อ้างอิง Container

docker stop webphp

ในที่นี้จะใช้ Container ID ในการอ้างอิงเพื่อสั่งหยุด contianer ที่ต้องการ
(การเรียกใช้ Container ID ไม่จำเป็นต้องใส่ให้ครบทุกตัวอักษรก็ได้)

ลบ Container
เมื่อไม่ใช้งาน Container นั้นแล้ว ไม่อยากจะใช้ต่อสามารถลบ Container ได้ด้วยคำสั่ง

docker stop webphp

จะใช้คำสั่งนี้ได้ก็ต่อเมื่อ Container นั้นหยุดทำงานไปแล้ว (docker stop webphp)

ดู Docker Image ทั้งหมด

docker images ls
คำสั่ง docker image ls

คำสั่งลบ Image
เมื่อต้องการลบ image จะต้องแน่ใจก่อนว่ามี container ไหนเรียกใช้ image นี้อยู่รึเปล่าถ้าไม่มีการเรียกใช้งานก็สามารถสั่งลบ image ด้วยคำสั่ง docker rm ตามด้วย IMAGE ID

docker rm 94a66....

สำหรับใช้เบื้องต้นก็ประมาณนี้ครับจริงๆยังมีอีกเยอะเลยครับ ฮาๆ ฝากไว้เท่านี้ก่อนครับไว้ค่อยมาหาอะไรเล่นกันใหม่

--

--