docker使用fauria/vsftpd搭建ftp

1. docker创建ftp命令

docker run -d -v /data/ftp:/home/vsftpd \
-p 20:20 \
-p 21:21 \
-p 21100-21110:21100-21110 \
-e FTP_USER=user01 \
-e FTP_PASS=123456 \
-e PASV_ADDRESS=192.168.200.100 \
-e PASV_MIN_PORT=21100 \
-e PASV_MAX_PORT=21110 \
--name vsftpd \
--restart=always \
fauria/vsftpd

如果是公有云产品,配置如下:

docker run -d -v /data/ftp:/home/vsftpd \
-p 20:20 \
-p 21:21 \
-p 21100-21110:21100-21110 \
-e FTP_USER=user01 \
-e FTP_PASS=123456 \
-e PASV_ADDRESS=0.0.0.0 \
-e PASV_MIN_PORT=21100 \
-e PASV_MAX_PORT=21110 \
-e pasv_promiscuous=YES \
--name vsftpd \
--restart=always \
fauria/vsftpd

另外需要修改docker 容器的:/usr/sbin/run-vsftpd.sh脚本
修改配置参数重定向到/etc/vsftpd/vsftpd.conf中

2. ftp命令行访问

#**`ftp 192.168.200.100`**
Connected to 192.168.200.100.
220 (vsFTPd 3.0.2)
Name (192.168.200.100:root): `user01`
331 Please specify the password.
Password: **`【此处输入密码】`**
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> dir
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rw-------    1 ftp      ftp      13357078 Mar 02 03:09 clamav-0.103.0.tar.gz
226 Directory send OK.
ftp> 

3. 上传文件

#ftp 192.168.200.100
Connected to 192.168.200.100.
220 (vsFTPd 3.0.2)
Name (192.168.200.100:root): user01
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> dir
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rw-------    1 ftp      ftp          5254 Mar 02 02:59 11111.log
-rw-------    1 ftp      ftp          5291 Mar 02 02:59 22222.log
226 Directory send OK.
ftp> put config.py 
local: config.py remote: config.py
200 PORT command successful. Consider using PASV.
150 Ok to send data.
226 Transfer complete.
14486 bytes sent in 0.02 secs (851.8387 kB/s)
ftp> 

3. 添加ftp用户

引用:docker ftp配置多个用户

进入ftp容器

#docker exec -it vsftpd /bin/bash
[root@f4778dafb251 /]# cd /home/vsftpd/
[root@f4778dafb251 vsftpd]# ll
total 0
drwxr-xr-x 2 ftp ftp 35 Mar  2 03:09 user01

创建用户对应的文件夹

[root@f4778dafb251 vsftpd]# mkdir user02
[root@f4778dafb251 vsftpd]# cat /etc/vsftpd/virtual_users.txt 
user01
123456
[root@f4778dafb251 vsftpd]#
[root@f4778dafb251 /]# vi /etc/vsftpd/virtual_users.txt

【此处添加user02用户及密码】

[root@f4778dafb251 vsftpd]# cat /etc/vsftpd/virtual_users.txt 
user01
123456
user02
123456

生成二进制文件

[root@f4778dafb251 vsftpd]# db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db
[root@f4778dafb251 vsftpd]# exit
exit
[root@f4778dafb251 vsftpd]#

重启docker容器

docker restart vsftpd
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐