ขั้นตอนที่ 1: เตรียมพื้นที่เก็บไฟล์
ก่อนอื่น เราควรสร้างโฟลเดอร์ในเครื่องของคุณเพื่อเอาไว้เชื่อมต่อ (Map) กับข้อมูลใน FTP Server เวลามีคนอัปโหลดไฟล์เข้ามา ไฟล์จะได้ถูกเก็บไว้ในเครื่องของคุณอย่างปลอดภัย
เปิด Terminal (หรือ Command Prompt) แล้วรันคำสั่งนี้เพื่อสร้างโฟลเดอร์:
mkdir -p ~/my_ftp/ftp_data
cd ~/my_ftp
ขั้นตอนที่ 2: สร้างไฟล์ Docker Compose
ในโฟลเดอร์ my_ftp ที่เพิ่งสร้าง ให้สร้างไฟล์ชื่อ docker-compose.yml (ใช้ Text Editor อะไรก็ได้ เช่น VS Code, Nano, หรือ Notepad) แล้วคัดลอกโค้ดด้านล่างนี้ไปวางครับ:
version: '3'
services:
ftp-server:
image: fauria/vsftpd
container_name: my-ftp-server
restart: always
ports:
- "20:20"
- "21:21"
- "21100-21110:21100-21110" # พอร์ตเสริมสำหรับโหมด Passive (จำเป็นสำหรับการรับส่งไฟล์)
environment:
- FTP_USER=admin # ตั้งชื่อ Username ที่ต้องการ
- FTP_PASS=password123 # ตั้ง Password ที่ต้องการ
- PASV_ADDRESS=192.168.1.180 # ระบุ IP เครื่องของคุณ
- PASV_MIN_PORT=21100
- PASV_MAX_PORT=21110
volumes:
- ./ftp_data:/home/vsftpd # ผูกโฟลเดอร์เครื่องเรา เข้ากับโฟลเดอร์ใน Docker
สิ่งที่ควรปรับแก้ตามความต้องการ:
-
FTP_USER และ FTP_PASS: เปลี่ยนเป็นชื่อผู้ใช้และรหัสผ่านที่คุณต้องการให้คนอื่นใช้ล็อกอิน
-
PASV_ADDRESS: ตอนนี้ใส่
192.168.1.180ตามที่คุณแจ้งมาถูกต้องแล้ว (ถ้าอนาคต IP นี้เปลี่ยน ต้องมาแก้ตรงนี้ด้วยครับ)
ขั้นตอนที่ 3: สั่งรัน FTP Server
เมื่อเซฟไฟล์ docker-compose.yml เรียบร้อยแล้ว ให้รันคำสั่งนี้ในโฟลเดอร์เดียวกันเพื่อเริ่มการทำงาน:
docker-compose up -d
(ระบบจะทำการดาวน์โหลด Image และรัน Container ให้ทำงานอยู่เบื้องหลัง)
วิธีทดสอบการใช้งาน
เมื่อรันเสร็จแล้ว คุณสามารถทดสอบได้ทันที:
-
ผ่านโปรแกรม FileZilla (แนะนำ):
-
Host:
192.168.1.180 -
Username:
admin(หรือตามที่คุณตั้งไว้) -
Password:
password123(หรือตามที่คุณตั้งไว้) -
Port:
21
-
-
ผ่าน Web Browser:
-
พิมพ์
ftp://192.168.1.180 -
ระบบจะเด้งหน้าต่างมาให้ใส่ Username และ Password
-
ข้อควรรู้เพิ่มเติมเกี่ยวกับตำแหน่งไฟล์: เมื่อคุณล็อกอินเข้าไปและสร้างโฟลเดอร์หรืออัปโหลดไฟล์ ไฟล์เหล่านั้นจะถูกบันทึกมาอยู่ที่เครื่องของคุณในโฟลเดอร์ ~/my_ftp/ftp_data/admin (แยกตามชื่อ User) โดยอัตโนมัติครับ หากต้องการหยุดการทำงานของ FTP Server ก็แค่ใช้คำสั่ง docker-compose down ในโฟลเดอร์เดิมครับ
