FTP(File Transfer Protocol,文件传输协议) 是 TCP/IP 协议组中的协议之一。FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。在开发网站的时候,通常利用FTP协议把网页或程序传到Web服务器上。此外,由于FTP传输效率非常高,在网络上传输大的文件时,一般也采用该协议。
默认情况下FTP协议使用TCP端口中的 20和21这两个端口,其中20用于传输数据,21用于传输控制信息。但是,是否使用20作为传输数据的端口与FTP使用的传输模式有关,如果采用主动模式,那么数据传输端口就是20;如果采用被动模式,则具体最终使用哪个端口要服务器端和客户端协商决定。
Docker 建立FTP服务器 脚本命令
ftp_dir=/tmp/ftp
ftp_ip=$(curl ip.sb)
mkdir -p ${ftp_dir}
docker run -d -v ${ftp_dir}:/home/vsftpd \
-p 20:20 -p 21:21 -p 47400-47470:47400-47470 \
-e FTP_USER=ftp2021 \
-e FTP_PASS=ftp2021 \
-e PASV_ADDRESS=${ftp_ip} \
--name ftp \
--restart=always bogem/ftp
Windows 文件管理器地址输入FTP地址就可以上传和下载了
ftp://ftp2021:[email protected]
使用完成,可以使用命令停止或者删除
# 停止 FTP 容器
docker stop ftp
# 删除 FTP 容器
docker rm -f ftp
发现的问题:挂载已有目录会改变目录拥有者,可以使用chown改回来
如图,我把ftp目录挂载到web目录,导致web不正常,改回来才正常,所以推荐新建一个目录临时挂载
chown -R www-data:www-data /var/www/html/
默认挂载目录会有些ftp命令无效,修改挂载点可以解决
-v /myftp/upgrade:/home/vsftpd/root/upgrade