Docker ep.1 — Install Docker
Docker เป็นอะไรที่ดีมาก หากใครได้ลองแล้วจะหลงรักไปนานตลอดกาล เข้าเรื่องเลยนะ^^ โปรแกรมเมอร์สายพัฒนาเว็บไซต์หรือระบบงานต่าง ๆ ต้องให้บริการออนไลน์นั้น คงจะเจอปัญหาคล้าย ๆ กัน ขอแบ่งเป็น 3 สถานการณ์ครับ
- พัฒนาบนเครื่องตัวเองแล้วใช้งานได้ แต่พอส่งไฟล์โปรแกรมไปลองเครื่องอื่น ๆ งานเข้าเลย รันไม่ได้ Error มากมาย แล้วเราก็บอกกลับไปว่า เครื่องของนาย ใช้งานได้หรือป่าว ? ลงโปรแกรมถูกต้องไหม …… -*-
- เว็บไซต์หรือระบบงาน ที่รันบนเซิร์ฟเวอร์ใช้งานรวมกันอยู่ มันก็ทำงานได้ตามปกติ แต่เมื่อ Admin อัพเกรด Package(PHP) บนเซิร์ฟเวอร์ขึ้นมา ทำให้เว็บไซต์และระบบงานใช้งานได้บ้าง ไม่ได้บ้าง เนื่องจากเวอร์ชั่น PHP นั้นเปลี่ยนไป ส่งผลให้เกิดปัญหาดังกล่าว
- อยากจะเริ่มใช้ Package เวอร์ชั้นใหม่ๆ (PHP 7.0) แต่ทำไม่ได้เพราะ ระบบงานเก่า ๆ ยังไง ๆ ก็ไม่รองรับแน่ ๆ !!____ __
ลักษณะปัญหานี้เป็นแค่ส่วนนึงเท่านั้น ที่เกิดขึ้นและมีผลต่อการทำงาน มายาวนานแล้ว…docker นั้นได้เข้ามาช่วยทำให้การทำงานนั้นง่ายขึ้นมาก ๆ ทำงานได้เป็นระบบมากขึ้นเยอะ
แล้ว Docker มันคืออะไรหละ!!!??
สรุปแบบเข้าใจให้ง่ายที่สุดครับว่า มันคือการสร้างสภาพแวดล้อมไว้บนเครื่องเซิร์ฟเวอร์เพื่อให้เหมาะสมกับเว็บไซต์และระบบงานนั้น ๆ ซึ่งตัว docker เองนั้นก็ได้ถูกออกแบบมาให้พร้อมที่จะโดนทำลายทิ้ง(ระบบล่ม/โดนแฮก)และพร้อมที่จะสร้างขึ้นมาใหม่อยู่เสมอครับ
มาให้ไวกันเลยดีกว่าครับ กับการติดตั้ง docker
#Install docker 1.12.3
Requirement
- Ubuntu Server 16.04 (x64)
- Basic Command
- Editor Ex. vi , nano , pico
ติดตั้ง Key เพื่อให้สามารถ ติดตั้ง Docker ได้
sudo apt-key adv — keyserver hkp://p80.pool.sks-keyservers.net:80 — recv-keys 58118E89F3A912897C070ADBF76221572C52609D
เพิ่ม docker source นี้เข้าไป (ใช้ editor ตามถนัดครับ)
sudo vi /etc/apt/sources.list.d/docker.list
# File : docker.list
deb https://apt.dockerproject.org/repo ubuntu-xenial main
ใช้คำสั่งเพื่อทำให้ Ubuntu อัพเดท Package ใหม่ๆรวมทั้ง docker
sudo apt-get update
ติดตั้ง Docker
sudo apt-get install docker-engine
ตรวจสอบเพื่อความแน่ใจว่าติดตั้งเสร็จสมบูรณ์
sudo docker -v
หากขึ้นข้อความข้างบน เป็นอันว่า เรียบบบบบบร้อยแล้ว
Docker พร้อมใช้งานครับผม
ไหนๆก็ติดตั้งเสร็จเรียบร้อยแล้ว ก็มาลองคำสั่งพื้นฐานกันสักหน่อยครับ ^^
ก่อนจะไปถึงตรงนั้นขอแนะนำสรุปๆให้เข้าใจง่ายๆนะครับว่า docker จะมี 2 ส่วนด้วยกันครับ ถึงจะทำงานได้
- Images คือ ต้นฉบับเพื่อนำไปใช้สร้าง Container
- Container คือ สภาพแวดล้อมตามต้องการ เพื่อนำไปใช้งาน
Docker Images Command (Basic)
SEARCH Docker Image ** STARTS มาก ความนิยมมาก , official คือ image นั้นสร้างมากจากผู้พัฒนา Package นั้น
sudo docker search <images name>
sudo docker search httpd
Download Docker Image
sudo docker pull <images name>
sudo docker pull httpd
List Docker Image
sudo docker images
Remove Docker Image
sudo docker rmi <images name>
sudo docker rmi httpd
Docker Container Command (Basic)
CREATE Docker Container and autostart
sudo docker run -it — name webserver — restart=always -d -p 80:80 httpd
อธิบายเพิ่ม
- run = สร้าง container
- name = ชื่อของ container
- restart = always กำหนดให้ Container ทำงานอัตโนมัติทุกครั้งเมื่อเครื่องเซิร์ฟเวอร์มีการ restart
- -p = 80:80 กำหนด port เพื่อเชื่อมต่อจาก host ไปยัง container
- httpd = ชื่อ image ที่นำมาสร้าง container
List Docker Container (All Container)
sudo docker ps -a
STOP Docker Container
sudo docker stop <container name>
sudo docker stop webserver
START Docker Container
sudo docker start <container name>
sudo docker start webserver
EXEC Docker Container รันคำสั่งใน container
sudo docker exec -it <container name> ls -l
sudo docker exec -it webserver ls -l
ดู IP ของ Container
sudo docker exec -it <container name> ip a
sudo docker exec -it webserver ip a
Remove Docker Container
sudo docker rm -f <container name>
คำอธิบาย -f = บังคับการลบ container ขณะที่กำลังทำงานอยู่
sudo docker rm -f webserver
ขอฝากไว้…^^
บทความ docker นี้เป็นการเขียนเพื่อให้เข้าใจง่ายที่สุด และอยากให้อ่านกันแล้วนำไปใช้งานได้เลยครับ หวังว่าคงได้รับประโยชน์กันนะครับ แล้วจะมีบทความ docker มาอีกเรื่อยๆครับ
ขอบคุณครับ
สนับสนุนเป็นกำลังใจได้ที่ลิงก์นี้ครับ
https://www.buymeacoffee.com/mfinity168
Name : Aussadayut
E-Mail : mfinity168@gmail.com
Don’t hesitate to ask me