项目里有个远程升级的需求,需要用到ftp服务器,Linux下搭建麻烦,所以采用docker,后期直接考就行,搞这个也是踩了半天的坑,特来记录下爬坑的过程
1.docker拉取ftp镜像
docker pull fauria/vsftpd
2.启动ftp服务器
启动ftp服务器
docker run -d -p 21:21 -p 20:20 -p 21100-21110:21100-21110 -v /home/harry/devicemanagement/test/uploadfile/upgrade:/home/vsftpd/root/upgrade -e FTP_USER=root -e FTP_PASS=123456 -e PASV_ADDRESS=宿主ip -e PASV_MIN_PORT=21100 -e PASV_MAX_PORT=21110 --name vsftpd --restart=always fauria/vsftpd
注:红色标记从左到右: 映射端口: 21--控制用 20--数据传输用 挂载的本机文件路径:/home/harry/devicemanagement/test/uploadfile/upgrade ftp容器的挂载位置:/home/vsftpd/root/upgrade FTP_USER:用户 FTP_PASS:密码 PASV_ADDRESS:宿主ip
3.进去容器内部
sudo docker exec -it vsftpd /bin/bash
4.退出容器
exit
特别注意:坑来了
一切搞完,服务器也启动了,看着ftp已经好了,但是死活访问不到ftp里的文件,网上的各种方法都试过了还是不行,最后发现只能访问到根目录,所有我怀疑挂载位置可能是特定的,于是各种试,终于试出来了,ftp内部的挂载位置必须在/home/vsftpd/root/目录下,重新配完启动,好了,出来了