目录
mkdir -p /opt/ftpData
用户
创建一个 FTP 用户组,用于存放 FTP 用户。
# groupadd ftpgroup
创建 FTP 用户登入时的主目录的父目录
# cd /home/
# pwd
/home
# mkdir ftpusers
# cd ftpusers/
# pwd
/home/ftpusers
创建一个 FTP 用户
创建一个 FTP 用户,指定登入时的主目录并加入 ftpgroup 组:
# useradd -d /home/ftpusers/ftpuser1 -g ftpgroup ftpuser1
设置密码:
# passwd ftpuser1
设置不允许这个用户登陆操作系统:
# usermod -s /sbin/nologin ftpuser1
Docker
获取镜像
docker pull fauria/vsftpd
运行
docker run -d -p 20:20 -p 21:21 -p 21100-21110:21100-21110 -v /opt/ftpData:/home/vsftpd -e FTP_USER=ftpuser1 -e FTP_PASS=ftpuser1 -e PASV_ADDRESS=192.172.34.162 -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端口
进入容器
docker exec -i -t vsftpd bash
编辑配置文件写入用户名和密码
vi /etc/vsftpd/virtual_users.txt
注意:使用vi编辑指令,其中奇数行为用户名,临近的下一个偶数行为密码,创建container时参数未加入用户名和密码,系统会默认创建admin和随机密码.
验证
ftpuser1
ftpuser1
FTP客户端
yum -y install ftp
参考
使用 Docker 搭建 FTP 服务_iw1210的博客-CSDN博客_docker ftp