查看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