sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository
“deb [arch=amd64] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu
$(lsb_release -cs)
stable”
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
sudo groupadd docker
sudo usermod -aG docker $USER
docker search vsftpd
选择STARS数值最大的
docker pull fauria/vsftpd
包含用户名和密码
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
docker exec -i -t vsftpd bash
编辑配置文件写入用户名和密码
vi /etc/vsftpd/virtual_users.txt
其中奇数行为用户名,临近的下一个偶数行为密码,创建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
重启container
docker restart vsftpd
验证ftp
ftp://<宿主机ip>
user_config_dir=/etc/vsftpd/config 虚拟用户的配置文件, 创建单独的用户文件夹,赋予不同的权限
ftpusers:黑名单用户
user_list:本地用户列表,开启后只允许列表用户访问
virtual_users.db:虚拟用户数据库
virtual_users.txt:存放虚拟用户
vsftpd.conf:主配置文件
更改配置文件
userlist_deny=NO
创建组
groupadd vsftp
创建用户并加入到组
useradd -d /opt/reconciliation -s /sbin/nologin -a ftpGroup -G root ftpUser
解析:
useradd 添加用户ftpUser
-d 指定用户根目录为/opt/reconciliation
-s 指定shell脚本为/sbin/nologin,表示不允许shell登录
-g 创建分组ftpGroup
-G 指定root分组
创建有问题可以删除重新创建 userdel -r ftpUser
连接FTP
ftp://<宿主机ip>
上传一个文件
put <文件名>
上传多个文件(中间用空格)
mput <文件1> <文件2>…
下载文件
get <文件名>