Docker | 搭建一个ftp服务器
分别用于ssh、ftp连接服务器。
·
前期准备
名称 | 地址 | 说明 |
---|---|---|
阿里云服务器 | 阿里云翼计划 | 系统镜像选择Ubuntu1604 server版 |
Xshell+Xftp | Xshell和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>
更多推荐
已为社区贡献1条内容
所有评论(0)