FTP Server (Cara 2)
FTP Server (Cara 2)[edit]
Cara 2 ini masih menggunakan proftpd namun menggunakan Dockerfile. Buat Folder ftp-server, kemudian buat Dockerfile di dalam folder tersebut. Pada cara 2 ini proses Deploy FTP-Server tidak melibatkan apache karena pada dasarnya proftpd tidak memerlukan apache. Adapun isi Dockerfile yang penulis buat adalah :
FROM debian:bullseye RUN apt-get update && \ apt-get install -y proftpd-basic nano && \ apt-get clean RUN useradd -d /home/ftpbele -s /usr/sbin/nologin ftpbele && \ echo "ftpbele:abahkuka" | chpasswd && \ mkdir -p /home/ftpbele && \ chown -R ftpbele:ftpbele /home/ftpbele && \ chmod -R 755 /home/ftpbele COPY proftpd.conf /etc/proftpd/proftpd.conf # Tetap expose port internal (FTP) dan passive ports EXPOSE 21 10090-10100 CMD ["/usr/sbin/proftpd", "-n"]
Kemudian buat file proftpd.conf dan simpan di folder yang sama dengan file Dockerfile.
ServerName "ProFTPD Docker Server" ServerType standalone DefaultServer on Port 21 Umask 022 MaxInstances 30 User nobody Group nogroup DefaultRoot ~ RequireValidShell off PassivePorts 10090 10100 MasqueradeAddress 10.8.80.3 # <- ganti dengan IP host Docker Anda <Global> AllowOverwrite yes </Global>
Struktur folder ftp-server yang di buat adalah seperti berikut ini :
ftp-server/ ├── Dockerfile └── proftpd.conf
Jalankan perintah build dari dalam folder ftp-server:
docker build -t ftpbele-server .
Saat saya membuild ftp-server menggunakan cara 2, karena port 21 sudah saya gunakan pada cara1 , jadi ingin menggunakan port 2112 yang di arahkan ke port 21 container ftp-server, maka Docker run yang di jalankan adalah sebagai berkut :
docker run -dit \ --name ftpbele-container \ -p 2112:21 \ # Host 2112 ➜ Container 21 -p 10090-10100:10090-10100 \ # Passive ports ftpbele-server
Setelah proses di atas berhasil, lakukan Test koneksi menggunakan FTP-Client dengan kredensial sebagai berikut :
user = ftpbele password = abahkuka ip ftp-server = 10.8.80.3 port = 2112
Semoga berhasil.