一、安装 centos7 镜像
# 拉取 centos7 镜像
docker pull centos:7
# 启动 centos7 容器
docker run -idt --name ftp -v /data/ftp:/data/ftp -p 20:20 -p 21:21 -p 8020:8020 -p 47400-47470:47400-47470 -e FTP_USER=ftp -e FTP_PASS=ftp -e PASV_ADDRESS=0.0.0.0 --privileged=true centos:7 /usr/sbin/init
二、 环境初始化
# 进入容器
docker exec -it ftp /bin/bash
# 安装常用命令
yum -y install net-tools vim tree unzip telnet gcc gcc-c++ make
三、 安装Nginx
# 安装依赖
yum install -y pcre-devel openssl-devel
# 新建 nginx 用户
useradd -s /sbin/nologin -M nginx
# 将 nginx 安装包放置在 /data/ftp 下,进入 /data/ftp 目录
cd /data/ftp
# 将 nginx 安装包解压到 /usr/local
tar xf /data/soft/nginx/nginx-1.16.1.tar.gz -C /usr/local
# 编译安装
cd /usr/local/nginx-1.16.1
./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
make && make install
mkdir /usr/local/nginx/conf/conf.d
cd /usr/local/nginx/conf/
mv nginx.conf nginx.conf.bak
# 创建 nginx 配置文件
vim nginx.conf
user nginx;
worker_processes 1;
events {
worker_connections 1024;
}
http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /usr/local/nginx/conf/conf.d/*.conf;
}
# 创建 ftp 的 nginx 代理配置文件
cd /usr/local/nginx/conf/conf.d/
vim ftp-web.conf
server{
listen 8020;
server_name 172.17.0.2;
location / {
root /data/ftp/;
index ftpuser;
autoindex on; # 显示目录
autoindex_exact_size on; # 显示文件大小,on(单位bytes);off(单位:KB,MB,GB)
autoindex_localtime on; # 显示文件时间,默认off,显示文件时间GMT时间,on为文件服务器时间
charset utf-8,gbk; # 解决中文乱码问题
}
}
# 启动 nginx
/usr/local/nginx/sbin/nginx
四、 安装 FTP 服务器
# 安装ftp服务
yum install vsftpd -y
# 启动ftp服务
systemctl start vsftpd
五、访问测试
六、注意事项
1、若出现无法访问,查看目录权限。