我们先了解一下FTP ? ?文件传输协议(File Transfer Protocol,FTP)是用于在网络上进行文件传输的一套标准协议,它工作在 OSI 模型的第七层, TCP 模型的第四层, 即应用层, 使用 TCP 传输而不是 UDP, 客户在和服务器建立连接前要经过一个“三次握手”的过程, 保证客户与服务器之间的连接是可靠的, 而且是面向连接, 为数据传输提供可靠保证。 ? ?FTP允许用户以文件操作的方式(如文件的增、删、改、查、传送等)与另一主机相互通信。然而, 用户并不真正登录到自己想要存取的计算机上面而成为完全用户, 可用FTP程序访问远程资源, 实现用户往返传输文件、目录管理以及访问电子邮件等等, 即使双方计算机可能配有不同的操作系统和文件存储方式。
? ? 使用
Docker 搭建
FTP 服务,不仅十分简单,而且可以对宿主机有一定的隔离。下面以
CentOS 系统为例,演示如何通过容器运行
FTP 服务。
1,拉取镜像, 首先执行如下命令将镜像下载到本地:
docker pull fauria/vsftpd
2,启动容器 执行如下命令实例化 ftp 服务:
参数说明: /var/ftp:/home/vsftpd:映射 docker 容器 ftp 文件根目录(冒号前面是宿主机的目录,建议宿主机使用 /var 这样公共权限文件夹,如果使用类似 /home 这样的目录可能会造成客户端无法连接上服务器问题) -p:映射 docker 端口(冒号前面是宿主机的端口) -e FTP_USER=test -e FTP_PASS=test :设置默认的用户名密码(都为 test) PASV_ADDRESS:宿主机 ip,当需要使用被动模式时必须设置。 PASV_MIN_PORT~ PASV_MAX_PORT:给客服端提供下载服务随机端口号范围,默认 21100-21110,与前面的 docker 端口映射设置成一样。
docker run -d -v /var/ftp:/home/vsftpd \
-p 20:20 -p 21:21 -p 21100-21110:21100-21110 \
-e FTP_USER=test -e FTP_PASS=test \
-e PASV_ADDRESS=192.168.60.128 \
-e PASV_MIN_PORT=21100 -e PASV_MAX_PORT=21110 \
--name vsftpd --restart=always fauria/vsftpd
4,新建用户文件夹 (1)首先执行如下命令进入到容器里面:
docker exec -i -t vsftpd bash
(2)由于前面我们启动的时候设置用户名为 test,已经自动创建对应的用户文件夹(所以下面这个文件夹无需我们再次手动创建):
mkdir /home/vsftpd/test
(3)为方便演示,在 test 用户文件夹下新建一个 test.txt 文件。
vi /home/vsftpd/test/test.txt
5,访问服务 (1)我们可以直接使用文本管理(win)进行访问,(mac直接在浏览器访问)地址如下: ftp://ip地址
如果不能访问看防火墙状态
查看防火墙:systemctl status firewalld
启动防火墙:systemctl start firewalld
关闭防火墙:systemctl stop firewalld
|