在Docker中搭建FTP服務器是一個非常方便的選擇。本文將介紹在Docker容器中如何搭建FTP服務器。
首先,我們需要創建一個Dockerfile,其中包含以下內容:
FROM ubuntu:latest
RUN apt-get update \
&& apt-get install -y vsftpd \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
ADD vsftpd.conf /etc/
RUN mkdir -p /var/run/vsftpd/empty
VOLUME /opt/ftp
EXPOSE 20 21 21100-21110
CMD ["/usr/sbin/vsftpd", "/etc/vsftpd.conf"]
然后,我們需要創建vsftpd.conf文件,其中包含以下內容:
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
use_localtime=YES
chroot_local_user=YES
pasv_enable=YES
pasv_min_port=21100
pasv_max_port=21110
接下來,我們需要構建Docker鏡像并啟動容器:
$ docker build -t ftp-server .
$ docker run -d -p 20-21:20-21 -p 21100-21110:21100-21110 -v /path/to/ftp:/opt/ftp --name ftp-server ftp-server
在上面的命令中,我們指定了Docker容器需要映射的端口、FTP服務器需要使用的文件夾,并且給容器取了一個名稱。
最后,我們需要使用FTP客戶端測試FTP服務器是否可以工作正常:
$ ftp localhost
Connected to localhost.
220 (vsFTPd 3.0.3)
Name (localhost:user): anonymous
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> put test.txt
local: test.txt remote: test.txt
200 PORT command successful. Consider using PASV.
150 Ok to send data.
226 Transfer complete.
ftp> quit
221 Goodbye.
至此,我們已經成功在Docker容器中搭建了FTP服務器。