Volumes
Keep uploaded files when a container is deleted, by binding a folder of the host as a volume.
- series
- Docker Workshop
- episode
- ตอนที่ 8 จาก 17
- read
- อ่าน 1 นาที
Problem
จากการทำ Backend ด้วย Hono มาก่อนหน้านี้
ถ้าหากใครลบ container ทิ้งไป แล้ว start กลับมาอีกรอบ จะเจอว่า ของที่เรา upload ขึ้นไปมันหายไปแล้ว
นั่นเป็นเพราะว่า ของที่เรา uploaded ขึ้นไปนั้นมันอยู่แค่ภายใน container อย่างเดียว พอเราลบ container นั้นทิ้ง ก็เหมือนเราลบทุกอย่างไปหมดเลย รวมถึง file ที่เรา uploaded ไปแล้วด้วย
Docker volumes
เราจะใช้ docker volumes ในการแก้ปัญหานี้
เมื่อเราลบ container ทิ้งไป แต่ folder บนเครื่อง host จะยังอยู่

พอเรา start container กลับมาอีกครั้งหนึ่ง เราก็ทำการ binding folder ใน container เข้ากับ folder บน host อีกครั้งหนึ่ง
binding volume
docker run --name hono -p 3333:3333 -v ./uploads:/app/uploads -d honoทีนี้ลอง upload file เข้ามา

แล้วลองดู folder /uploads ก็จะเห็นว่ามี file เพิ่มเข้ามาแล้ว
.├── compose.yaml├── dist│ └── index.js├── Dockerfile├── flake.lock├── flake.nix├── global.d.ts├── package.json├── pnpm-lock.yaml├── README.md├── src│ └── index.ts├── tsconfig.json└── uploads └── README.md