小编给大家分享一下Docker如何搭建FTP服务,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
一行命令
dockerrun-d\ -v/share:/home/vsftpd\ -p20:20\ -p21:21\ -p21100-21110:21100-21110\ -eFTP_USER=zhaoolee\ -eFTP_PASS=eelooahz\ -ePASV_ADDRESS=47.106.108.135\ -ePASV_MIN_PORT=21100\ -ePASV_MAX_PORT=21100\ --namezhaoolee_vsftpd\ --restart=always\ fauria/vsftpd
参数解释:
-d 表示新建容器在后台运行
-v 表示设置目录映射 设置举例 -v /share:/home/vsftpd 将宿主机的/share目录映射到docker容器的/home/vsftpd (用户zhaoolee登录后, 程序会在/home/vsftpd文件夹下, 自动新建一个zhaoolee文件夹, 用来存放上传的文件)
-p 为映射端口 -p 20:20 表示将宿主机20端口映射到docker容器的20端口,-p 21:21 表示将宿主机21端口映射到docker容器的21端口, -p 21100-21110:21100-21110 表示将宿主机的21100到21110端口映射到docker容器的21100到21110端口
与端口密切相关的是主动模式和被动模式两种连接方式
主动模式: 21端口为ftp默认的端口,是ftp的控制端口, 而20端口是ftp的数据端口, 21端口用来接收客户端连接, 20端口用来传输数据; 服务器(主动地)定下规矩,客户端与服务端建立连接, 那通过21端口, 想传数据就通过20端口, 20端口和21端口结合到一起就是ftp的主动模式
被动模式: 主动模式有一些安全性问题, 如果有人想攻击你的ftp服务, 就直接到20端口堵你, 为了避免数据出门被人堵, 就出现了被动模式, 被动模式把传数据的20端口, 改成了范围, 比如上文中的21100-21110, 具体哪个值由客户端来定(比如21115), 这样传出的数据就不容易被人堵,安全性大大提升, 现在大多数ftp客户端,默认使用被动模式连接服务器, 也就是由客户端定传数据的端口
-e 表示追加参数
FTP_USER 为ftp登录用户名, 设置示例 FTP_USER=zhaoolee
FTP_PASS 为ftp登录密码, 设置示例 FTP_PASS=eelooahz
PASV_ADDRESS 为外网ip , 设置示例PASV_ADDRESS=104.243.20.148 (非常重要: 这里一定要绑定宿主机对外的ip, 否则后面会连不上, zhaoolee在这里调了好久...)
PASV_MIN_PORT为客户端连接服务器的最小端口号为21100 (被动模式下服务端最小端口号)
PASV_MAX_PORT为客户端连接服务器的最大端口号为21110 (被动模式下服务端最大端口号)
--name zhaoolee_vsftpd 表示容器名为 zhaoolee_vsftpd(这个名字可以自定义)
--restart=always 表示 restart可以
fauria/vsftpd 代表镜像名
用阿里云做个测试
开启 端口20 , 端口21, 端口段21100-21110
创建容器
连接测试(FillZilla下载链接: https://filezilla-project.org/download.php?type=client)
通过ftp上传文件
ftp是一个常用的服务, 这里使用vsftp的docker方式完成搭建, 一行命令搞定docker镜像 fauria/vsftpd 开源地址: https://github.com/fauria/docker-vsftpd, 可以找到详细的操作文档
以上是“Docker如何搭建FTP服务”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注恰卡编程网行业资讯频道!
相关文章
- Linux如何在命令行下创建和管理 Docker 网络
- Linux如何在系统启动时自动运行 Docker 容器
- 容器化最佳实践:Docker 与 Kubernetes 在微服务架构中的协同设计
- Docker 镜像优化指南:分层构建、瘦身技巧与多阶段编译实践
- Docker 新手入门:容器创建、镜像打包与数据卷管理基础
- Docker 容器 CPU 占用过高:资源限制策略与进程分析工具使用
- IntelliJ IDEA 远程开发:连接 SSH 服务器与 Docker 容器的配置指南
- 用 VS Code+Docker 构建全栈开发环境:从本地调试到云端部署全流程
- Docker 镜像分层原理:UnionFS 机制与缓存利用最佳实践
- IntelliJ IDEA+Docker:微服务项目的本地调试与容器化部署流程