在linux下使用dcoker配置ftp服务器

本文详细指导如何在Linux下利用Docker搭建FTP服务器,包括拉取镜像、自定义端口、添加虚拟用户,以及处理WinSCP连接和上传问题,特别提到了从Docker迁移到Linux环境时遇到的坑和解决方案。

最近做项目需要用到ftp服务器,将生成的文件放到上面让甲方访问,大哥跟我说要在liunx下搭建一个先测试使用。

1.拉取镜像

docker pull fauria/vsftpd (自己敲,复制可能有问题)

2.启动容器

默认端口:docker run -d -v /var/ftp:/home/vsftpd -p 20:20 -p 21:21 -p  21100-21110:21100-21110 -e FTP_USER=你的登录账号 -e FTP_PASS=你的登录密码 -e PASV_ADDRESS=你的服务器ip -e PASV_MIN_PORT=21100 -e PASV_MAX_PORT=21110 --name 随便写一个为你的容器名字 --restart=always fauria/vsftpd


自定义端口:docker run -d -v /var/ftp:/home/vsftpd -p 9001:21 -p 9002:9002 -e FTP_USER=你的登录账号 -e FTP_PASS=你的登录密码 -e PASV_ADDRESS=你的服务器ip -e PASV_MIN_PORT=9002-e PASV_MAX_PORT=9002--name 随便写一个为你的容器名字 --restart=always fauria/vsftpd

挂载地址:(冒号前面是宿主机地址,后面是docker容器里面的地址)

3.启动完了就可以用连接工具WinSCP连接了

主机名:你的服务器ip
端口:9001(如果默认的就是21)
用户名:你的登录账号
密码:你的登录密码。

当然也可以直接在浏览器里输入:ftp://你的登录账号:你的登录密码@你的服务器ip。

4.添加虚拟用户(客户需求:要去不同的账号管理不同的文件)

1.先要进入到docker容器中
  docker exec -i -t ftpserver bash
2.创建新用户的文件夹(用户名就是文件夹名称)
  mkdir /home/vsftpd/ghc
3.编辑用户配置文件
  vi /etc/vsftpd/virtual_users.txt
4.添加新用户的用户名和密码
  vi 进入后,如果你启动时指定了一个用户,那么就会显示这个用户的账号密码,在他后面回车添加上你要加价的账号密码我这里用的是:ghc 2021ghc 账号和密码中间要有个换行
5.保存退出编辑模式,把登录的验证信息写入数据库。
  /usr/bin/db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db
6.退出容器,重启ftp容器就可以了
  docker restart ftpserver

可能用到命令:
    - 停止启动:docker stop 容器id

    - 关闭容器:docker rm 容器id 

    - 删除镜像:docker rmi imageId

踩坑记录:我们模拟测试的是在docker下装的ftp,实际项目是发放客户的是在linux上装的ftp,导致出现了下面的这个问题

  如果安装完以后使用ftp连接工具可以拖拽文件和文件夹,但是使用代码就是不能上传文件,也没有任何异常,就是上传不成功,那么可以去试试将ftpClient的主被动模式改为被动模式,我这里用的是hutool的ftp连接工具原理一样的。hutool的这个连接工具上面说默认是被动模式导致坑了我好长时间,直到后来手动改为了被动模式才可以上传。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值