背景:简单 FTP 服务进行数据交流
一、Docker Hub 案例
二、Docker compose 案例
2.1、docker-compose 脚本文件
version: '2'services:# ftp服务ftpServer:image: fauria/vsftpd ## 镜像#build: .container_name: xn_test_ftpprivileged: trueports:- "20:20"- "21:21"- "21100-21110:21100-21110"volumes:- /media/data/ftp:/home/vsftpd ## ftp 文件根目录(宿主机文件访问权限需要配置 )restart: alwaysenvironment:FTP_USER: xn_ftp ## default usernameFTP_PASS: xn_ftp ## default passwordPASV_ADDRESS: 192.168.16.198 ## 宿主机ip,被动模式时必须配置PASV_MIN_PORT: 21100 ## 下载随机端口最小值PASV_MAX_PORT: 21110 ## 下载随机端口最大值TZ: Asia/Shanghai
2.2、防火墙配置
默认 docker 命令默认开启,如果没有手动开启,以:
firewall-cmd为例
firewall-cmd --permanent --add-port=20/tcp
firewall-cmd --permanent --add-port=21/tcp
firewall-cmd --permanent --add-port=21100/tcp
firewall-cmd --permanent --add-port=21101/tcp
firewall-cmd --permanent --add-port=21102/tcp
firewall-cmd --permanent --add-port=21103/tcp
firewall-cmd --permanent --add-port=21104/tcp
firewall-cmd --permanent --add-port=21105/tcp
firewall-cmd --permanent --add-port=21106/tcp
firewall-cmd --permanent --add-port=21107/tcp
firewall-cmd --permanent --add-port=21108/tcp
firewall-cmd --permanent --add-port=21109/tcp
firewall-cmd --permanent --add-port=21110/tcp
firewall-cmd --reload
2.3、创建用户目录用于访问
默认已创建了用户。 例如:自定义一个用户,用户名=zhixing,密码=123456
## 进入容器
docker exec -it $[dockerName} bash
## 创建用户文件夹
mkdir /home/zhixing
## 编辑用户信息
vi /etc/vsftpd/virtual_users.txt
======
zhixing
123456
======
## 将登录的验证信息写入数据库
/usr/bin/db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db
## 退出重启容器
// 略
