使用Docker搭建FTP服务。使用的镜像是fauria/vsftpd

1. 拉取镜像

1
docker pull fauria/vsftpd

2. 运行镜像

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
docker run -d --name vsftpd -v ~/sftp:/home/vsftpd  \
-p 21:21 -p 20:20 -p 21100-21110:21100-21110 \
-e FTP_USER=myuser -e FTP_PASS=mypass \
-e PASV_ADDRESS=127.0.0.1 \
--restart=always \
fauria/vsftpd

#-p 进行端口绑定映射
#-v 添加容器数据卷
#-e FTP_USER=davion -e FTP_PASS=davion 添加一个初始化用户davion
#PASV_MIN_PORT和PASV_MAX_PORT映射的是被动模式下端口使用范围
#-name vsftpd 为容器命名为vsftpd 
#--restart=always fauria/vsftpd docker 异常退出时自动重启容器

3. 在镜像中新增自定义的新用户

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# 进入容器
docker exec -it vsftpd bash

# 创建
mkdir /home/vsftpd/myuser
echo -e "myuser\nmypass" >> /etc/vsftpd/virtual_users.txt
/usr/bin/db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db
exit

#重启
docker restart vsftpd

4. 访问

在浏览器(或者其他ftp客户端工具)中输入:ftp://127.0.0.1 , 测试是否访问正常