1、docker-compose配置
services:ftp:image: fauria/vsftpdcontainer_name: ftpenvironment:FTP_USER: fondaFTP_PASS: fonda123PASV_ADDRESS: 192.168.10.220 #宿主机IPPASV_MIN_PORT: 11103PASV_MAX_PORT: 11105ports:- "20:20"- "21:21"- "11103-11105:11103-11105"volumes:- ./data:/home/vsftpd/fonda- ./vsftpd.conf:/etc/vsftpd/vsftpd.conf- ./run-vsftpd.sh:/usr/sbin/run-vsftpd.shentrypoint: ["bash", "/usr/sbin/run-vsftpd.sh"]restart: always
2、vsftpd.conf配置
listen=YESbackground=NO# 本地用户(虚拟用户也是用本地权限)local_enable=YESwrite_enable=YES# 允许 chrootchroot_local_user=YESallow_writeable_chroot=YES# 匿名用户anonymous_enable=YES#跟yml文件中的要一制anon_root=/home/vsftpd/fondaanon_upload_enable=NOanon_mkdir_write_enable=NOanon_other_write_enable=NO# 本地用户根目录,跟yml文件中的要一制local_root=/home/vsftpd/fonda# 虚拟用户系统账户guest_enable=NOguest_username=ftpvirtual_use_local_privs=NO# PAMpam_service_name=vsftpd# PASVpasv_enable=YES#宿主机IPpasv_address=192.168.10.220pasv_min_port=11103pasv_max_port=11105seccomp_sandbox=NO# 上传文件权限file_open_mode=0666local_umask=022
3、run-vsftpd.sh配制
# If no env var for FTP_USER has been specified, use 'admin':if [ "$FTP_USER" = "**String**" ]; thenexport FTP_USER='admin'fi# If no env var has been specified, generate a random password for FTP_USER:if [ "$FTP_PASS" = "**Random**" ]; thenexport FTP_PASS=`cat /dev/urandom | tr -dc A-Z-a-z-0-9 | head -c${1:-16}`fi# Do not log to STDOUT by default:if [ "$LOG_STDOUT" = "**Boolean**" ]; thenexport LOG_STDOUT=''elseexport LOG_STDOUT='Yes.'fi# Create home dir and update vsftpd user db:mkdir -p "/home/vsftpd/${FTP_USER}"chown -R ftp:ftp /home/vsftpd/echo -e "${FTP_USER}\n${FTP_PASS}" > /etc/vsftpd/virtual_users.txt/usr/bin/db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db# Set passive mode parameters:if [ "$PASV_ADDRESS" = "**IPv4**" ]; thenexport PASV_ADDRESS=$(/sbin/ip route|awk '/default/ { print $3 }')fi# Get log file pathexport LOG_FILE=`grep xferlog_file /etc/vsftpd/vsftpd.conf|cut -d= -f2`# stdout server info:if [ ! $LOG_STDOUT ]; thencat << EOB************************************************** ** Docker image: fauria/vsftpd ** https://github.com/fauria/docker-vsftpd ** **************************************************SERVER SETTINGS---------------· FTP User: $FTP_USER· FTP Password: $FTP_PASS· Log file: $LOG_FILE· Redirect vsftpd log to STDOUT: No.EOBelse/usr/bin/ln -sf /dev/stdout $LOG_FILEfi# Run vsftpd:&>/dev/null /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
4、启动ftp镜像
docker-compose up -d

5、登录容器做相关操作
cd /home/vsftpd/useradd -m fondaecho "fonda:fonda123" | chpasswdmkdir -p fonda/testchown -R fonda:root fondachmod -R 755 fonda
6、windws访问截图


