ติดตั้ง FTP Server ด้วย Docker

ขั้นตอนที่ 1: เตรียมพื้นที่เก็บไฟล์

ก่อนอื่น เราควรสร้างโฟลเดอร์ในเครื่องของคุณเพื่อเอาไว้เชื่อมต่อ (Map) กับข้อมูลใน FTP Server เวลามีคนอัปโหลดไฟล์เข้ามา ไฟล์จะได้ถูกเก็บไว้ในเครื่องของคุณอย่างปลอดภัย

เปิด Terminal (หรือ Command Prompt) แล้วรันคำสั่งนี้เพื่อสร้างโฟลเดอร์:

Bash

mkdir -p ~/my_ftp/ftp_data
cd ~/my_ftp

ขั้นตอนที่ 2: สร้างไฟล์ Docker Compose

ในโฟลเดอร์ my_ftp ที่เพิ่งสร้าง ให้สร้างไฟล์ชื่อ docker-compose.yml (ใช้ Text Editor อะไรก็ได้ เช่น VS Code, Nano, หรือ Notepad) แล้วคัดลอกโค้ดด้านล่างนี้ไปวางครับ:

YAML

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 เรียบร้อยแล้ว ให้รันคำสั่งนี้ในโฟลเดอร์เดียวกันเพื่อเริ่มการทำงาน:

Bash

docker-compose up -d

(ระบบจะทำการดาวน์โหลด Image และรัน Container ให้ทำงานอยู่เบื้องหลัง)

วิธีทดสอบการใช้งาน

เมื่อรันเสร็จแล้ว คุณสามารถทดสอบได้ทันที:

  1. ผ่านโปรแกรม FileZilla (แนะนำ):

    • Host: 192.168.1.180

    • Username: admin (หรือตามที่คุณตั้งไว้)

    • Password: password123 (หรือตามที่คุณตั้งไว้)

    • Port: 21

  2. ผ่าน Web Browser:

    • พิมพ์ ftp://192.168.1.180

    • ระบบจะเด้งหน้าต่างมาให้ใส่ Username และ Password

ข้อควรรู้เพิ่มเติมเกี่ยวกับตำแหน่งไฟล์: เมื่อคุณล็อกอินเข้าไปและสร้างโฟลเดอร์หรืออัปโหลดไฟล์ ไฟล์เหล่านั้นจะถูกบันทึกมาอยู่ที่เครื่องของคุณในโฟลเดอร์ ~/my_ftp/ftp_data/admin (แยกตามชื่อ User) โดยอัตโนมัติครับ หากต้องการหยุดการทำงานของ FTP Server ก็แค่ใช้คำสั่ง docker-compose down ในโฟลเดอร์เดิมครับ