docker 中安装FTP
三种FTP,安装方法
今天时间有限,就测试了这三种ftp,最后还是推荐大家使用pure-ftpd。特别是需要用到一些同步软件的时候。
一、stilliard/pure-ftpd (功能强大)
https://hub.docker.com/r/stilliard/pure-ftpd
创建容器
#创建volume
docker volume create pure-ftpd-passwd
#创建容器 (注意:PUBLICHOST 是 docker物理机地址)
docker run -d \
-p 21:21 \
-p 30000-30009:30000-30009 \
-e "PUBLICHOST=10.1.1.32" \
-e FTP_USER_NAME=yujing \
-e FTP_USER_PASS=wtugeqh \
-e FTP_USER_HOME=/home/ftpusers/yujing \
-v pure-ftpd-passwd:/etc/pure-ftpd/passwd \
-v /home/pure-ftpd:/home/ftpusers \
--name ftpd_server \
--restart=always \
stilliard/pure-ftpd
创建用户
#添加用户 用户名 文件夹
docker exec -it ftpd_server /bin/bash
pure-pw useradd yy -f /etc/pure-ftpd/passwd/pureftpd.passwd -m -u ftpuser -d /home/ftpusers/yy
docker restart ftpd_server
#修改密码
pure-pw passwd yujing -f /etc/pure-ftpd/passwd/pureftpd.passwd -m
二、vsftpd (小巧)
地址:https://hub.docker.com/r/fauria/vsftpd
创建容器
#创建volume
docker volume create vsftpd_log
#创建容器 (注意:PASV_ADDRESS 是 docker物理机地址)
docker run -d \
-p 20:20 \
-p 21:21 \
-p 21100-21110:21100-21110 \
-e FTP_USER=yujing \
-e FTP_PASS=wtugeqh \
-e PASV_ADDRESS=10.1.1.32 \
-e PASV_MIN_PORT=21100 \
-e PASV_MAX_PORT=21110 \
-e pasv_promiscuous=YES \
-v vsftpd_log:/var/log/vsftpd \
-v /home/vsftpd:/home/vsftpd \
--name vsftpd \
--restart=always \
fauria/vsftpd
创建用户
#进入容器,创建用户,用户文件夹,账号\n密码
docker exec -i -t vsftpd bash
mkdir /home/vsftpd/yy
echo -e "yy\nwtugeqh" >> /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
三、fclairamb/ftpserver (小巧)(无法进入容器)
开源地址:https://github.com/fclairamb/ftpserver
创建容器
docker run -d \
-v /ftp/tmp:/tmp \
-v /ftp/app:/app \
--name ftpserver \
--restart=always \
--net=host \
fclairamb/ftpserver
创建用户
#添加或修改用户
nano /ftp/app/ftpserver.json
docker restart ftpserver
#访问:ftp://192.168.1.82:2121/