Docker
#HelloInfra #HelloErmine #HelloWorld2021
Docker คือ?

แพลตฟอร์มซอฟต์แวร์ที่ช่วยให้คุณสร้าง ทดสอบ และติดตั้งแอปพลิเคชันใช้จริงได้อย่างรวดเร็ว Docker จะบรรจุซอฟต์แวร์ลงไปในหน่วยที่เป็นมาตรฐานเรียกว่า Container ซึ่งจะมีทุกสิ่งที่ซอฟต์แวร์ต้องใช้ในการเรียกใช้งาน รวมทั้ง Library เครื่องมือสำหรับระบบ Code และ Run time
Docker image คือ?
ตัวต้นแบบของ container ซึ่งภายในจะประกอบด้วย application ต่าง ๆ ที่มีการติดตั้งไว้เพื่อใช้งานสำหรับ service
Docker container คือ?
สามารถมองได้เสมือนกล่อง ซึ่งนำ docker image มาติดตั้ง เพื่อให้สามารถใช้งาน service ที่ต้องการจาก image นั้น ๆ ได้
Docker-compose คือ?
script คำสั่ง ที่เอาไว้สร้าง container หลาย ๆ อันขึ้นมาพร้อมกัน โดยใช้คำสั่งเดียว
คำสั่ง Docker compose
version - เป็นการระบุว่าเราจะใช้ Compose file เวอร์ชั่นไหน
services - เป็นการระบุ container ที่ต้องใช้
image - เป็นการเรียกใช้ Image จาก Docker hub Registry
ports - เป็นการทำ port mapping ระหว่าง host กับ container
volumes - การสร้าง volume มี 2 แบบ ซึ่งสร้างอยู่ในชื่อของ server แต่ละตัวก็คือการเชื่อมต่อ volume แต่ถ้าอยู่ใน ระดับเดียวกัน server: จะเป็นการสร้าง volume
build - การบอกว่าให้ใช้ image ที่สร้างจาก Dockerfile
links - เป็นการผูก service เข้าด้วยกันทำให้ service สามารถเรียกใช้งาน server ที่ link ได้
restart: alway - เป็นการกำหนดให้ service นั้น restart ตัวเองอัตโนมัติเมื่อเกิดข้อผิดพลาด หรือสั่งให้เริ่มต้นทำงานอัตโนมัติเมื่อเปิดเครื่องเปิดใหม่
network - เป็นการใช้เพื่อสร้างเส้นทางสื่อสารกันระหว่าง container
memory limit - การกำจัดการใช้งาน container เพื่อไม่ให้ใช้ ram เกินที่ตั้งไว้
context - path ของ Dockerfile เพื่อที่จะใช้การสร้าง container
memory reservations - การกำหนดค่าการใช้งาน ram ขั้นต่ำของ container
depens_on - สั่งให้ service นั้นเริ่มทำงานหลังจาก service ที่ depens_on อยู่เริ่มต้นทำงานเสร็จแล้ว
อธิบาย docker-compose.yml
version: '3.1' <<# Version ของ docker-compose
service: <<#Service ที่เราจะใช้
msql:<<#ชื่อserver
image: mysql:5.7 <<#image ที่เราจะใช้
container_name: mysql <<#ตั้งชื่อ container
port:
-3308:3306 <<#Map Port จาก Host กับ Container
volumes:
-"./data/var/lib/mysql" <<Map Folder หรือ File จาก Host กับ Container
environment:
...<<#Environment ของ image
ทำไมถึงต้องใช้ Docker ?
ไมโครเซอร์วิส คือ การสร้างและกำหนดขนาดสถาปัตยกรรมแอปพลิเคชันแบบกระจายโดยใช้ประโยชน์จากการติดตั้งโค้ดใช้จริงที่เป็นมาตรฐานโดยการใช้คอนเทนเนอร์
วิธีการติดตั้ง Docker
1.1 ถ้าเคยมีการลง Docker มาก่อนให้ลบ Docker version เก่าออกก่อน หากไม่เคยให้ข้ามขั้นตอนนี้ไป
sudo apt-get remove docker docker-engine docker.io containerd runc
1.2 ทำการอัปเดต package ของ ubuntu
sudo apt-get update
1.3 ลงตัวช่วยในการติดตั้ง Docker โดยติดตั้ง Package เพิ่มเติมเพื่อให้สามารถใช้งาน apt บน HTTPS ได้
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release
1.4 ติดตั้ง GPG Key ของ Docker
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
1.5 ใช้คำสั่งต่อไปนี้เพื่อตั้งค่า repository
echo \
"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
วิธีการสร้าง container สำหรับการ run service
ติดตั้ง Docker image ที่ต้องการ ในที่นี้จะติดตั้ง nginx
sudo docker pull nginx
Website สำหรับ pull image ที่ต้องการใช้งาน
Basic Docker Command
docker ps <option>
ใช้สำหรับดู container ที่กำลัง run อยู่
<option> อย่างเช่น -a ที่ย่อมาจาก all
docker exec -it <name container> bash
การเข้าไปดูข้อมูลหรือแก้ไขข้อมูลใน container นั้น ๆ
docker run
คำสั่งในการ run container
แหล่งอ้างอิง📑
Last updated
Was this helpful?