一、拉取镜像:
1.1 镜像拉取
docker pull fauria/vsftpd
1.2 查询镜像
docker images |grep ftp
- 运行镜像
2.1 创建目录
创建目录
/root/ht/ftp/data
/root/ht/web/html/data/ftp/haxftp
2.2 执行
docker run -d -p 2121:21 -p 2020:20 -p 21100-21110:21100-21110 \
-v /root/ht/ftp/vsftpd/:/etc/vsftpd/ \
-v /root/ht/web/html/data/ftp:/home/vsftpd \
-v /root/ht/ftp/log:/var/log/vsftpd/ \
-e FTP_USER=haxftp \
-e FTP_PASS=htAdmin2023 \
-e PASV_ADDRESS=0.0.0.0 \
-e PASV_MIN_PORT=21000 \
-e PASV_MAX_PORT=22000 \
-e TZ="Asia/Shanghai" \
--name vsftpd \
--restart=always fauria/vsftpd
宿主机端口: 2121 对应ftp容器21
宿主机端口: 2020 对应ftp容器20
宿主机端口段:21000-22000 对应ftp容器21000-22000
宿主机目录:/root/ht/ftp/data 映射容器目录:/home/vsftpd/ftp
ftp账号:haxftp 密码htAdmin2023
绑定ip地址
最小端口21100 最大端口21110
指定容器名称:vsftpd
--restart=always 容器重启跟着docker重启
配置文件vsftpd.conf
background=NO # Allow anonymous FTP? (Beware - allowed by default if you comment this out). anonymous_enable=NO # Uncomment this to allow local users to log in. local_enable=YES ## Enable virtual users guest_enable=YES ## Virtual users will use the same permissions as anonymous virtual_use_local_privs=YES # Uncomment this to enable any form of FTP write command. write_enable=YES ## PAM file name pam_service_name=vsftpd_virtual ## Home Directory for virtual users user_sub_token=$USER local_root=/home/vsftpd/$USER # You may specify an explicit list of local users to chroot() to their home # directory. If chroot_local_user is YES, then this list becomes a list of # users to NOT chroot(). chroot_local_user=YES # Workaround chroot check. # See https://www.benscobie.com/fixing-500-oops-vsftpd-refusing-to-run-with-writable-root-inside-chroot/ # and http://serverfault.com/questions/362619/why-is-the-chroot-local-user-of-vsftpd-insecure allow_writeable_chroot=YES ## Hide ids from user hide_ids=YES ## Enable logging xferlog_enable=YES xferlog_file=/var/log/vsftpd/vsftpd.log ## Enable active mode port_enable=YES connect_from_port_20=YES ftp_data_port=20 ## Disable seccomp filter sanboxing seccomp_sandbox=NO ### Variables set at container runtime pasv_address=0.0.0.0 pasv_max_port=21110 pasv_min_port=21100 pasv_addr_resolve=NO pasv_enable=YES |
添加防火墙
iptables -I INPUT -p tcp --dport 21000:22000 -j ACCEPT
service iptables save
systemctl restart iptables