← Back to list

เรื่องของ Docker Layer Architecture

“เข้าใจ Docker image และ Docker contianer ผ่าน Layer Architecture”

Supanut Laddayam · 2026-06-27 11:16 · 0 claps · 1.4 min read
#docker #docker-image #docker-container #layers
Open on Medium ↗
Wiki topics: ☁️ · DevOps & Cloud 🏛️ · Architecture

เรื่องของ Docker Layer Architecture

“เข้าใจ Docker image และ Docker contianer ผ่าน Layer Architecture”

ในแต่ละคำสั่งใน dockerfile เมื่อถูก build จะทำให้เกิด layer ขึ้นมา เช่น

ผมมี app expressjs ซึ่งหน้าตาของ dockerfile เป็นดังนี้

FROM node:22-alpine

WORKDIR /app

COPY package*.json ./

RUN npm install

COPY . .

EXPOSE 3000

CMD ["npm", "run", "dev"]

เมื่อใช้คำสั่ง docker build สิ่งที่เกิดขึ้นคือจะได้ image ซึ่งภายในจะเป็นชั้น layer

ข้อดีของการเป็น layer คือ หากมี app ที่มี layer เหมือนกัน เช่นเป็น app expressjs เหมือนกันใน layer ที่ 1, 2 เมื่อ build ตัว docker จะใช้ layer ที่เคยสร้างมาก่อนหน้า ทำให้ build ได้เร็วขึ้น

Layer ทั้งหมดนี้ เราจะมัดรวม และเรียกเป็น “Image layer” ซึ่งจะเป็น Read only หมายความว่าเมื่อ build เป็น image ขึ้นมาแล้ว เราจะไม่สามารถแก้ไขข้อมูลหรือคำสั่งภายใน image ได้, ถ้าอยากจะแก้ไขจะต้องทำการ build เป็น imageใหม่.

เมื่อ docker run image เป็น container -> จะเกิด layer ใหม่ขึ้น คือ “Container layer

ซึ่ง Container layer จะเป็นแบบ Read Write หรือ Writable คือสามารถเกิดการเขียน data ขึ้นได้ เช่น app มีการเขียนไฟล์ log ขึ้นมาเป็นไฟล์ log และเรายังสามารถแก้ไขตัว source code ของ application ได้อีกด้วย (ถ้า copy ตัว source code เข้าไปใน แต่ถ้ามีแต่ binary ก็จะไม่สามารถแก้ไขได้) ซึ่ง action ที่เป็นการแก้ไขไฟล์ใน container จะเรียกว่า “COPY-ON-WRITE

และไฟล์ที่เกิดขึ้นใน container จะถูกลบและหายไป เมื่อ container นั้นถูกทำลาย.

แล้วถ้าอยากให้ไฟล์ที่เกิดขึ้นคงอยู่ละ จะแก้ปัญหายังไง ??


메타데이터
post_id
320d0c8a204e
slug
ทำความเข้าใจ-docker-layer-architecture-320d0c8a204e
url
https://medium.com/@astronut1911/%E0%B8%97%E0%B8%B3%E0%B8%84%E0%B8%A7%E0%B8%B2%E0%B8%A1%E0%B9%80%E0%B8%82%E0%B9%89%E0%B8%B2%E0%B9%83%E0%B8%88-docker-layer-architecture-320d0c8a204e
canonical_url
https://medium.com/@astronut1911/%E0%B8%97%E0%B8%B3%E0%B8%84%E0%B8%A7%E0%B8%B2%E0%B8%A1%E0%B9%80%E0%B8%82%E0%B9%89%E0%B8%B2%E0%B9%83%E0%B8%88-docker-layer-architecture-320d0c8a204e
author_url
https://medium.com/@astronut1911
status
ok
fetched_at
2026-07-11 04:49:25