docker部署ftp
1、pull镜像,下载fauria/vsftpd
docker pull fauria/vsftpd
2、创建需要挂载的目录,配置启动容器 ,映射的pub匿名访问目录,方便其他Linux主机wget文件
docker run -d -p 20:20 -p 21:21 -p 21100-21110:21100-21110 -v /home/vsftpd/caoxh:/home/vsftpd -v /home/vsftpd/pub:/var/ftp/pub -e PASV_ADDRESS=123.56.136.32 -e PASV_MIN_PORT=21100 -e PASV_MAX_PORT=21110 --name vsftpd --restart=always fauria/vsftpd
运行docker镜像并创建对应的Container
包含用户名和密码
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
提示:
PASV_ADDRESS需改为自己的宿主机ip
-p 进行端口绑定映射
-v 进行文件目录的映射
FTP_UESR 和FTP_PASS如果设定了会在container的
/etc/vsftpd/virtual_users.txt里面
PASV_ADDRESS指的的宿主机地址
PASV_MIN_PORT和PASV_MAX_PORT映射的是被动模式下端口使用范围
必须在服务器的防火墙中开启20、21、22和21100/21110端口
3、进入vsftpd镜像对应的容器中
docker exec -i -t vsftpd bash
编辑配置文件写入用户名和密码(奇数行为用户名,偶数行为密码)
vi /etc/vsftpd/virtual_users.txt
添加新用户的文件夹,以用户名命名
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或Ctrl+D
重启container
docker restart vsftpd
验证ftp
ftp://<宿主机ip>
如果无法正常访问需要登录到容器修改vsftpd.conf配置文件,注释anonymous_enable=NO,就可以正常访问了
不指定下载目录
如果不指定下载目录,那么文件将被下载到当前目录。
命令格式:wget 网址
wget https://repo.mysql.com//mysql80-community-release-el8-1.noarch.rpm
指定下载目录
命令格式:wget -P 目录 网址
wget -P /home/test https://repo.mysql.com//mysql80-community-release-el8-1.noarch.rpm
指定下载目录及文件名
命令格式:wget 网址 -o 目录/文件名
wget https://repo.mysql.com//mysql80-community-release-el8-1.noarch.rpm -o /home/temp.rar