Docker vsftpd 建立 FTP 伺服器

一、為什麼要使用 Docker?

Docker 可以將服務運行在一個獨立的容器中,這個容器可以隔離不同的服務和環境。使用 Docker 可以方便地創建和分發應用程序,同時也可以加強應用程序的安全性和可靠性。而在建立 FTP 伺服器時,使用 Docker 可以使得部署和管理變得更加容易。

二、通過 Dockerfile 構建 vsftpd 鏡像

構建 vsftpd 鏡像的第一步是編寫 Dockerfile,這個文件包括了容器運行時所需要的所有信息。具體文件如下:

FROM alpine
RUN apk update && apk upgrade && apk add vsftpd && rm -rf /var/cache/apk/*
ADD vsftpd.conf /etc/vsftpd/
ADD start.sh /
RUN chmod +x /start.sh
EXPOSE 20 21 21100-21110
ENTRYPOINT ["/start.sh"]

上述 Dockerfile 可以在 Alpine 鏡像的基礎上安裝 vsftpd 並添加我們自己的配置文件和啟動腳本。其中,EXPOSE 指令可以指定容器中需要暴露的埠,ENTRYPOINT 定義了容器啟動時需要執行的命令。

三、編寫 vsftpd 配置文件

接下來是 vsftpd 配置文件的編寫,代碼如下:

listen=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
pasv_enable=YES
pasv_min_port=21100
pasv_max_port=21110
pasv_address=YOUR_PUBLIC_IP
ftpd_banner=Welcome to my FTP server.
anon_root=/var/ftp
anon_upload_enable=YES
anon_mkdir_write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES

在 above 配置文件中,需要特別注意 pasv_address 指令。根據你的實際網路環境填寫自己的公網 IP 地址。如果你使用的是 Docker 宿主機,則可以填寫宿主機 IP 地址。

四、編寫啟動腳本

最後,我們需要編寫啟動腳本 start.sh,完成 vsftpd 程序的啟動和配置文件的載入。

#!/bin/sh
/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf

五、構建項目並啟動 vsftpd

完成以上三個部分之後,我們可以利用以下命令構建並啟動 vsftpd 容器:

$ docker build -t my-vsftpd .
$ docker run -d --name my-vsftpd -p 20:20 -p 21:21 -p 21100-21110:21100-21110 my-vsftpd

其中,-t 表示為構建的鏡像命名,. 表示 Dockerfile 所在的路徑為當前路徑。-d 表示將容器運行在後台,–name my-vsftpd 表示設定容器名稱為 my-vsftpd,-p 20:20 -p 21:21 -p 21100-21110:21100-21110 指定需要映射的埠。

總結

本文介紹了如何使用 Docker 創建 vsftpd 伺服器。通過編寫 Dockerfile、配置文件和啟動腳本,我們可以快速部署一個安全可靠的 FTP 伺服器。在實際應用中,我們可以根據自己的需求對相關配置進行更改。

原創文章,作者:XRHRJ,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/361605.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
XRHRJ的頭像XRHRJ
上一篇 2025-02-25 18:17
下一篇 2025-02-25 18:17

相關推薦

發表回復

登錄後才能評論