docker 下安装FTP文件服务器,并进行Nginx转发

查看ftp镜像

docker search vsftpd

拉取ftp 镜像

docker pull fauria/vsftpd

查看镜像

docker images | grep "ftp"

实例化 ftp 服务

参数说明:

/var/ftp:/home/vsftpd:映射 docker 容器 ftp 文件根目录(冒号前面是宿主机的目录,建议宿主机使用 /var 这样公共权限文件夹,如果使用类似 /home 这样的目录可能会造成客户端无法连接上服务器问题)
-p:映射 docker 端口(冒号前面是宿主机的端口)
-e FTP_USER=test -e FTP_PASS=test :设置默认的用户名密码(都为 test)
PASV_ADDRESS:宿主机 ip,当需要使用被动模式时必须设置。
PASV_MIN_PORT~ PASV_MAX_PORT:给客服端提供下载服务随机端口号范围,默认 21100-21110,与前面的 docker 端口映射设置成一样

设置账号密码为test的

docker run -d -v /var/ftp:/home/vsftpd -p 20:20 -p 21:21 -p  21100-21110:21100-21110 -e FTP_USER=test -e FTP_PASS=test -e PASV_ADDRESS=192.168.0.20 -e PASV_MIN_PORT=21100 -e PASV_MAX_PORT=21110 --name vsftpd --restart=always fauria/vsftpd

-v 即是服务器的挂载路径  如果后续你是想要服务器直接可以访问的,那么可以访问挂载的路径,即/var/ftp,后续的nginx 转发也是需要这个的

进入docker 容器查看文件

docker exec -it 10a51c3479ba /bin/bash

windows 本地连接文件服务器

ftp://test:[email protected]:21

填写账号密码进行查看

开始nginx 的挂载

一开始我们进行了ftp 的挂载,同样,我们需要对nginx进行挂载,把服务器的路径挂载到nginx 容器中

run --name ftpnginx -d -p 80:80 -v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /data/nginx/logs:/var/log/nginx -v /var/ftp/test/:/var/local/ nginx

这边就是把/var/ftp/test/中的图片放到nginx容器的/var/local/中

挂载完成可以直接进入nginx查看文件

docker exec -it ftpnginx bash

进入var/local/查看

修改nginx.conf 进行转发和访问静态的问题

在nginx.conf中添加

#第一行添加
user root;
#在server 中添加
location /ftp/ {
		index   index.html;
		alias  /var/local/;
		autoindex on ;
		#定义服务器的默认网站根目录位置
	}

注意root 和alias 的区别 

后续直接访问ip:(端口)/ftp/xxx.jpg 就可直接访问

如果location是/  举例192.168.0.20/ftp 

猜你喜欢

转载自blog.csdn.net/wang0112233/article/details/112312953
今日推荐