创建目录:
mkdir /home/vsftpd/fileHome
运行容器:
docker run -d -p 20:20 -p 21:21 \
-p 21100-21110:21100-21110 \
-v /home/vsftpd/fileHome:/home/vsftpd \
-e FTP_USER=vsftp \
-e FTP_PASS=vsftp@2021 \
-e PASV_ADDRESS=192.168.1.158 \
-e PASV_MIN_PORT=21100 \
-e PASV_MAX_PORT=21110 \
--name vsftpd \
--restart=always fauria/vsftpd
参数说明
-v /home/vsftpd/fileHome:/home/vsftpd
: 路径映射,这里是将docker容器ftp文件根目录映射到本地-p
: 映射容器的端口号-e FTP_USER=vsftp
: 设置默认用户名-e FTP_PASS=vsftp@2021
:设置默认密码-e PASV_ADDRESS=192.168.1.158
: 宿主机IP,当需要使用被动模式时必须设置-e PASV_MIN_PORT=21100 -e PASV_MAX_PORT=21110
:给客服端提供下载服务随机端口号范围,默认 21100-21110,与前面的 docker 端口映射设置成一样。
新建用户文件夹
首先执行如下命令进入到容器里面
docker exec -i -t vsftpd bash
由于前面我们启动的时候设置用户名为 vsftp
,已经自动创建对应的用户文件夹(所以下面这个文件夹无需我们再次手动创建):
mkdir /home/vsftpd/vsftp
为方便演示,在 vsftp
用户文件夹下新建一个 1.txt
文件。
vi /home/vsftpd/vsftp/1.txt
访问服务
我们可以直接使用浏览器进行访问,地址如下:
ftp://<ip>
增加一个新用户
首先执行如下命令进入到容器里面
docker exec -i -t vsftpd bash
创建新用户的文件夹
mkdir /home/vsftpd/test
编辑用户配置文件
vi /etc/vsftpd/virtual_users.txt
在文件中添加新用户的用户名和密码,其中奇数行为用户名,临近的下一个偶数行为密码,
保存退出后执行如下命令,把登录的验证信息写入数据库
/usr/bin/db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db
最后退出容器,并重启容器可以使用新用户连接 FTP
服务了。
exit
docker restart vsftpd