前期准备

名称地址说明
阿里云服务器阿里云翼计划系统镜像选择Ubuntu1604 server版
Xshell+XftpXshell和Xftp免费试用

分别用于ssh、ftp连接服务器

安装vsftpd

参阅:

  • 搜索vsftpd镜像
    docker search vsftpd

  • pull最新版镜像到本地
docker pull fauria/vsftpd

运行docker镜像并创建对应的Container

# 包含用户名和密码
docker run -d -p 20:20 -p 21:21 -p 21100-21110:21100-21110 -v /Ftpfile:/home/vsftpd -e FTP_USER=user -e FTP_PASS=userpwd -e PASV_ADDRESS=<宿主机ip> -e PASV_MIN_PORT=21100 -e PASV_MAX_PORT=21110 --name vsftpd --restart=always fauria/vsftpd
# 不包含用户名和密码
docker run -d -p 20:20 -p 21:21 -p 21100-21110:21100-21110 -v /Ftpfile:/home/vsftpd -e PASV_ADDRESS=<宿主机ip> -e PASV_MIN_PORT=21100 -e PASV_MAX_PORT=21110 --name vsftpd --restart=always fauria/vsftpd
提示:

PASV_ADDRESS需改为自己的宿主机ip
-p 进行端口绑定映射
-v 进行文件目录的映射
FTP_UESR 和FTP_PASS如果设定了会在container的
/etc/vsftpd/virtual_users.txt里面
PASV_ADDRESS指的的宿主机地址
PASV_MIN_PORT和PASV_MAX_PORT映射的是被动模式下端口使用范围
必须在服务器的防火墙中开启20、21、22和21100/21110端口

  • 进入vsftpd镜像对应的container中
    docker exec -i -t vsftpd bash

  • 编辑配置文件写入用户名和密码
    vi /etc/vsftpd/virtual_users.txt
    提示:
    
    注意使用vi编辑指令,其中奇数行为用户名,临近的下一个偶数行为密码,创建container时参数未加入用户名和密码,系统会默认创建admin和随机密码.
    添加新用户的文件夹,以用户名命名
    mkdir -p /home/vsftpd/<新用户名>
    
    hash处理登录的验证信息并写入数据库
    /usr/bin/db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db
    
    退出container
    exit或Ctrl+D
    
    重启container
    docker restart vsftpd
    
    验证ftp
    ftp://<宿主机ip>
    

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐