Article

9 ตุลาคม 2564


การใช้งาน Docker


docker

 

Docker ประกอบด้วย 2 ส่วนหลักๆคือ

  1. Images คือ blueprint หรือ template ที่เก็บ Code หรือ Application ที่ต้องการรันไว้ สามารถ share package กันได้
  2. Containers ที่เก็บซอฟแวร์ที่จะใช้รันโค้ดใน Image อาจมีได้หลาย Container รัน image เดียวกัน

 

การติดตั้ง Docker

ดูได้จากเว็บไซต์  https://docs.docker.com/get-docker/

 

สำหรับ Window เมื่อติดตั้งเสร็จแล้วตรวจสอบ Version โดยใช้ Power Shell คำสั่ง

docker --version

 

การสร้าง image จาก Project

ติดตั้ง docker extension ใน Visual Studio Code

สร้างไฟล์ชื่อ Dockerfile ใน Project จากนั้นวางคำสั่ง Docker ที่ต้องการ execute ตอนที่ build image ใน Dockerfile แล้วรันคำสั่ง docker build . ใน terminal

 

คำสั่งใน Dockerfile

FROM <ใช้ชื่อ image เดียวกับที่มีในเครื่องหรือที่โหลดมาจาก Docker Hub>

WORKDIR /app  คือให้คำสั่ง RUN ด้านล่างรันในโฟลเดอร์นี้

บอก Docker ว่าไฟล์อะไรบ้างที่จะใช้สร้าง image โดยใช้คำสั่ง

COPY . .  คือ copy ทั้ง 2 path โดย . แรกคือในโฟลเดอร์เดียวกันกับ Dockerfile และ . ที่ 2 คือโฟลเดอร์ปลายทางใน image หรือสามารถ copy แค่ sub folder ก็ได้ เช่น  COPY . /app คือ copy โฟลเดอร์ทั้งหมดไปยัง /app ถ้าไม่มีมันจะสร้างให้อัตโนมัติ หรือใช้ COPY . / หมายถึง copy ไปยัง directory ที่กำลังทำงานอยู่ใน WORKDIR ซึ่งก็คือ /app

รันคำสั่งที่ต้องการให้ทำงานใน Container เช่น

RUN npm install 

จากนั้นเมื่อ setup ทุกอย่างเรียบร้อยแล้วทำการ start server โดยใช้คำสั่ง

RUN <ชื่อ image> <ไฟล์ที่ต้องการรัน>

 

การรัน Docker

สามารถรันด้วย id เช่น docker run <รหัส id container>

 

การรันโดยมีการประกาศ port

docker run –p <เลข Publish พอร์ต>:<เลขพอร์ตที่เชื่อมต่อ>  <รหัส id container>

 

การตรวจสอบ Container

docker ps  ดู Container ที่กำลัง run

docker ps –a  ดู Container ทั้งหมด

 

การหยุด Container

docker stop <ชื่อ container>

 

การใช้ Pre-build image

ค้นหา image จาก docker hub ตัวอย่างการรัน nginx ใช้คำสั่ง

docker run nginx ถ้าไม่มี image จะทำการโหลดจาก Docker Hub ให้โดยอัตโนมัติ

docker run -it nginx  คือการรันแบบมีการ interactive กับ Container

 

 




กรุณา Login ก่อนถึงจะสามารถแสดงความคิดเห็นได้
Please login for comment
ตรวจสอบสถานะการจัดส่งสินค้า