Docker ep.1 — Install Docker

mfinity168
3 min readNov 10, 2016

Docker เป็นอะไรที่ดีมาก หากใครได้ลองแล้วจะหลงรักไปนานตลอดกาล เข้าเรื่องเลยนะ^^ โปรแกรมเมอร์สายพัฒนาเว็บไซต์หรือระบบงานต่าง ๆ ต้องให้บริการออนไลน์นั้น คงจะเจอปัญหาคล้าย ๆ กัน ขอแบ่งเป็น 3 สถานการณ์ครับ

  1. พัฒนาบนเครื่องตัวเองแล้วใช้งานได้ แต่พอส่งไฟล์โปรแกรมไปลองเครื่องอื่น ๆ งานเข้าเลย รันไม่ได้ Error มากมาย แล้วเราก็บอกกลับไปว่า เครื่องของนาย ใช้งานได้หรือป่าว ? ลงโปรแกรมถูกต้องไหม …… -*-
  2. เว็บไซต์หรือระบบงาน ที่รันบนเซิร์ฟเวอร์ใช้งานรวมกันอยู่ มันก็ทำงานได้ตามปกติ แต่เมื่อ Admin อัพเกรด Package(PHP) บนเซิร์ฟเวอร์ขึ้นมา ทำให้เว็บไซต์และระบบงานใช้งานได้บ้าง ไม่ได้บ้าง เนื่องจากเวอร์ชั่น PHP นั้นเปลี่ยนไป ส่งผลให้เกิดปัญหาดังกล่าว
  3. อยากจะเริ่มใช้ 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 ส่วนด้วยกันครับ ถึงจะทำงานได้

  1. Images คือ ต้นฉบับเพื่อนำไปใช้สร้าง Container
  2. 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

--

--