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 ?
ไมโครเซอร์วิส คือ การสร้างและกำหนดขนาดสถาปัตยกรรมแอปพลิเคชันแบบกระจายโดยใช้ประโยชน์จากการติดตั้งโค้ดใช้จริงที่เป็นมาตรฐานโดยการใช้คอนเทนเนอร์
การผสานรวมและการจัดส่งอย่างต่อเนื่อง คือ การเร่งความเร็วในการจัดส่งแอปพลิเคชันโดยการทำให้สภาพแวดล้อมมีมาตรฐานและการขจัดความขัดแย้งระหว่างเวอร์ชันและชั้นของภาษา
การประมวลผลข้อมูล คือ การมอบบริการการประมวลผลข้อมูล Big Data บรรจุแพคเกจข้อมูลและการวิเคราะห์ลงใน Container ที่เคลื่อนย้ายได้ซึ่งสามารถใช้งานได้โดยผู้ใช้ที่ไม่ชำนาญด้านเทคนิค
คอนเทนเนอร์ในฐานะบริการ คือ การสร้างและจัดส่งแอปพลิเคชั่นแบบกระจายด้วยเนื้อหาและโครงสร้างพื้นฐานที่มีการจัดการโดยฝ่ายไอทีและได้รับการรักษาความปลอดภัย
วิธีการติดตั้ง Docker
1.1 ถ้าเคยมีการลง Docker มาก่อนให้ลบ Docker version เก่าออกก่อน หากไม่เคยให้ข้ามขั้นตอนนี้ไป
sudo apt-get remove docker docker-engine docker.io containerd runc1.2 ทำการอัปเดต package ของ ubuntu
sudo apt-get update1.3 ลงตัวช่วยในการติดตั้ง Docker โดยติดตั้ง Package เพิ่มเติมเพื่อให้สามารถใช้งาน apt บน HTTPS ได้
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release1.4 ติดตั้ง GPG Key ของ Docker
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg1.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/null2.1 ทำการอัปเดต list ของ package ที่มีอยู่ทำการอัพเดต list ของ package ที่มีอยู่
sudo apt-get update2.2 ทำการติดตั้ง Docker CE
sudo apt-get install docker-ce docker-ce-cli containerd.io2.3 ตรวจสอบ version
apt-cache madison docker-ce2.4 ทดลอง Run Hello World
sudo docker run hello-worldวิธีการสร้าง container สำหรับการ run service
ติดตั้ง Docker image ที่ต้องการ ในที่นี้จะติดตั้ง nginx
sudo docker pull nginxWebsite สำหรับ pull image ที่ต้องการใช้งาน
หลังจากติดตั้ง Docker image ที่ต้องการแล้ว ในที่นี้จะติดตั้ง nginx ให้ run nginx ผ่าน Docker container
docker run --name some-nginx -v /some/content:/usr/share/nginx/html:ro -d -p 80:80 nginx
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?