Docker-FTP-Server 使用教程
1. 项目目录结构及介绍
Docker-FTP-Server 是一个基于 Docker 的简单 FTP 服务器,使用 vsftpd
作为 FTP 服务的后端。项目的目录结构如下:
docker-ftp-server/
├── .github/ # GitHub 工作流程配置
├── src/ # 源代码和配置文件
│ ├── Dockerfile # Docker 镜像构建文件
│ ├── LICENSE # MIT 许可证文件
│ ├── README.md # 项目说明文档
│ ├── _config.yml # 配置文件示例
│ └── test.sh # 测试脚本
└── .editorconfig # 编辑器配置文件
.github/
: 存放与 GitHub 工作流程相关的配置文件。src/
: 包含项目的核心文件。Dockerfile
: 用于构建 Docker 镜像的配置文件。LICENSE
: 项目的 MIT 许可证。README.md
: 项目的说明文档。_config.yml
: 项目的配置文件示例。test.sh
: 项目的测试脚本。
.editorconfig
: 用于定义项目的编码风格和配置。
2. 项目的启动文件介绍
项目的启动主要依赖于 Dockerfile
文件。以下是 Dockerfile
的基本内容:
# 使用的基础镜像
FROM ubuntu:latest
# 设置环境变量
ENV FTP_PASS bar
ENV FTP_USER foo
ENV UID 1000
ENV GID 1000
ENV PUBLIC_IP 0.0.0.0
# 安装 vsftpd
RUN apt-get update && apt-get install -y vsftpd
# 配置 vsftpd
COPY vsftpd.conf /etc/vsftpd.conf
# 设置 FTP 用户和密码
RUN useradd -m -u $UID -g $GID $FTP_USER
RUN echo "$FTP_USER:$FTP_PASS" | chpasswd
# 暴露端口
EXPOSE 20
EXPOSE 21
EXPOSE 40000-40009
# 启动 vsftpd
CMD ["vsftpd", "/etc/vsftpd.conf"]
这个 Dockerfile
用于创建一个包含 vsftpd
的 Docker 镜像,并配置了默认的用户和密码。
3. 项目的配置文件介绍
项目的配置主要通过环境变量和 vsftpd.conf
文件进行。以下是一些主要的配置选项:
FTP_PASS
: FTP 服务的密码,默认为bar
。FTP_USER
: FTP 服务的用户名,默认为foo
。UID
: 设置用户的 ID,默认为1000
。GID
: 设置用户组的 ID,默认为1000
。PUBLIC_IP
: 公共 IP 地址,用于被动模式连接,默认为0.0.0.0
。
vsftpd.conf
是 vsftpd
的配置文件,可以通过修改此文件来调整 FTP 服务的设置。例如,以下是配置被动模式端口的示例:
pasv_enable=YES
pasv_min_port=40000
pasv_max_port=40009
这些配置确保了 vsftpd
可以在指定的端口范围内运行被动模式连接。