在前端开发中,我们可能需要通过 FTP 上传或下载文件到服务器上,而在本地使用 FTP 客户端时需要进行端口映射等配置,不方便且容易出错。而 Docker 则为我们提供了一种更加便捷,稳定的方式。
我们可以使用 Docker 镜像中的 vsFTPd 服务来搭建 FTP 映射,并通过 Docker Network 实现容器间的通信,使得我们可以在本地使用 FTP 客户端来访问运行在容器中的 vsFTPd 服务,实现方便的文件上传和下载。
准备工作
在开始操作之前,请确保你已经在本地安装了 Docker。
启动 vsFTPd 服务
我们可以选择下载已经打好的 vsFTPd 镜像:
$ docker pull fauria/vsftpd
然后我们创建一个 Docker 容器,通过下面的 Docker 命令来启动 vsFTPd 服务:
$ docker run -d \ --name ftp \ -p 20-21:20-21 \ -p 21100-21110:21100-21110 \ -v /data/ftp:/home/vsftpd \ -e FTP_USER=user \ -e FTP_PASS=passwd \ fauria/vsftpd
命令含义及参数解释如下:
-d
:表示以后台方式运行容器;--name ftp
:容器的名称;-p 20-21:20-21
:容器端口和本地端口映射,这里表示将容器内部的 20 和 21 端口映射到本地服务器的 20 和 21 端口;-p 21100-21110:21100-21110
:同上,映射 PASV 模式使用的端口范围;-v /data/ftp:/home/vsftpd
:将本地磁盘上的/data/ftp
目录挂载到容器内部的/home/vsftpd
目录,这样上传的文件就会存储在本地磁盘上;-e FTP_USER=user
:设置用户名为user
;-e FTP_PASS=passwd
:设置密码为passwd
,请自行替换为复杂的密码;
启动后,通过 docker ps
命令查看容器是否运行成功。
FTP 客户端使用
在本地 FTP 客户端中,我们需要连接的 FTP 服务器主机名即我们上面启动的 vsFTPd 服务的 IP,这里可以直接使用 localhost
或者本机 IP 地址。端口号则对应我们映射的外部和内部端口,即 20-21
以及 21100-21110
。
用户名和密码则是我们在启动容器时设置的 FTP_USER
和 FTP_PASS
。
如果你使用的是 Mac 系统,可以使用系统自带的 Finder 应用来连接 FTP 服务器,打开 Finder 后按下快捷键 command + k
,在弹出的窗口中填写 FTP 服务器地址、用户名、密码等信息即可。
总结
通过使用 Docker 容器来搭建 FTP 服务器,我们可以避免在本地配置 FTP 服务所需要的环境,提升了开发效率。而此外,还可以借助 Docker Compose 实现多个容器间的相互连接,以及通过一些插件来进行备份和恢复操作等等。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64f6dc0bf6b2d6eab3f65ba0