docker搭建ftp(外网访问)
·
通过docker创建容器命令生成ftp用户,在连接时无法获取ftp目录;docker-compose脚本生成ftp容器同样无法获取目录。通过下面办法可实现docker容器中的ftp正常连接和访问。
1、拉取镜像
docker pull fauria/vsftpd
2、生成/启动ftp容器(不创建ftp用户)
docker run -d -v /etc/localtime:/etc/localtime:ro -v /home/dr/data/ftp:/home/vsftpd -p 20:20 -p 21:21 -p 21100-21110:21100-21110 -e PASV_ADDRESS=*.*.*.* -e PASV_MIN_PORT=21100 -e PASV_MAX_PORT=21110 -e LOCAL_UMASK=022 -e FILE_OPEN_MODE=0755 --name xj_ftp --restart=always fauria/vsftpd
# -e LOCAL_UMASK=022 -e FILE_OPEN_MODE=0755解决ftp上传文件权限不够的问题
-e PASV_ADDRESS配置为宿主机公网IP地址
3、创建容器用户
- 进入容器
docker exec -it -u root xj_ftp bash
- 手动创建一个用户目录,目录名即用户名
mkdir /home/vsftpd/ftpuser
- 编辑用户和密码
vi /etc/vsftpd/virtual_users.txt

备注: 用户名和之前创建的目录名一致
- 用户信息写入到数据库
/usr/bin/db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db
- 返回宿主机重启容器
docker restart xj_ftp
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)