Docker搭建Vsftpd服務器
一開始用yum安裝Vsftpd,中間老是出問題,不是連接不上了就是啟動不了了,關鍵還老是找不到問題所在,折騰一上午也白干,后台突發奇想看看Docker吧,果然很快速很方便的就搭建好了,建議小伙伴們使用Docker安裝,方便快捷
1. 安裝Vsftpd
1.1 拉去鏡像
docker pull fauria/vsftpd
1.2 運行
- 普通運行
docker run --rm fauria/vsftpd
- 簡單綁定一個目錄
docker run -d -p 21:21 -v /my/data/directory:/home/vsftpd --name vsftpd fauria/vsftpd
- 創建主動被動模式的帶有虛擬賬戶的
docker run -d -v /my/data/directory:/home/vsftpd \
-p 20:20 -p 21:21 -p 21100-21110:21100-21110 \
-e FTP_USER=myuser -e FTP_PASS=mypass \
-e PASV_ADDRESS=127.0.0.1 -e PASV_MIN_PORT=21100 -e PASV_MAX_PORT=21110 \
--name vsftpd --restart=always fauria/vsftpd
- 給vsftpd容器添加用戶
docker exec -i -t vsftpd bash
mkdir /home/vsftpd/myuser
echo -e "myuser\nmypass" >> /etc/vsftpd/virtual_users.txt
/usr/bin/db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db
exit
docker restart vsftpd
2. 可以添加的命令
在run時添加上就行了
2.1 FTP_USER
FTP_USER=指定的用戶名
# 默認為:admin, 如果你不指定FTP_USER則會使用默認的
# 可以使用任意字符串,但是不啊喲使用空格和特殊字符
2.2 FTP_PASS
FTP_PASS=指定的密碼
# 如果不指定則是一個默認的16位字符串,如81d4hzP1sQLnSM56
# 密碼可以指定任意字符串
2.3 PASV_ADDRESS_ENABLE
PASV_ADDRESS_ENABLE=[NO|YES]
# 關閉|啟動被動模式
2.3 PASV_ADDRESS_RESOLVE
PASV_ADDRESS_RESOLVE=[NO|YES]
# 啟動|關閉主動模式
2.4 PASV_ADDRESS
PASV_ADDRESS={任意IPv4地址|hostname}
# 如果未指定被動模式下的IP地址則可能是主機的地址,如127.0.0.1
2.6 PASV_ADDR_RESOLVE
PASV_ADDR_RESOLVE=[YES|NO]
# 如果PASV_ADDRESS設置的主機名而不是IP地址則設置為YES
2.7 PASV_MIN_PORT
PASV_MIN_PORT=最小的端口
# 默認為21100
# 被動模式端口的下限
2.8 PASV_MAX_PORT
PASV_MAX_PORT=最大的端口
# 默認為21110
# 被動模式端口的上限
2.9 XFERLOG_STD_FORMAT
XFERLOG_STD_FORMAT=[YES|NO]
# 如果要使用XFERLOG格式寫入日志則YES
2.10 LOG_STDOUT
LOG_STDOUT=任意字符串
# 將日志輸出STDOUT以便容器查看
2.11 FILE_OPEN_MODE
FILE_OPEN_MODE=0666
# 文件系統權限默認為0666
2.6 LOCAL_UMASK
LOCAL_UMASK=077
#文件系統權限
2.6 REVERSE_LOOKUP_ENABLE
REVERSE_LOOKUP_ENABLE=[YES|NO] # 默認為YES
# 如果要避免服務器不響應范查詢設置為NO