• 记录在docker中部署pure-ftp


    1、部署环境

    普通物理机一台(6G内存,500G硬盘),windows server 2016操作系统。

    安装vmware workstation  pro14,新建centos 7虚拟机。

    2、在centos 7虚拟机中安装docker、创建容器、在容器中安装pure-ftp

    2.1、禁用SELINUX

    #vi /etc/selinux/config
    SELINUX有以下三种设置,设置为第一种
    SELINUX=disabled
    SELINUX=enforcing
    SELINUX=permissive
     

    2.2、安装docker 

    #yum install docker
    #systemctl start docker.service       
    #systemctl enable docker.service

    2.3、下载镜像到本地

    #docker images
    查看本机镜像
    #docker pull centos
    下载镜像
    #docker images
    查看本机镜像

    2.4、创建容器

    #docker run -v /home/ftpdata:/containerftpdata -p 21:21 -p 48000-50000:48000-50000 -itd --privileged=true --name centos_ftp centos /usr/sbin/init
    创建容器
    #docker run -v /home/ftpdata:/containerftpdata --net=host -itd --privileged=true --name centos_ftp_host centos /usr/sbin/init
    指定host网络模式创建容器,无需端口映射,使用主机的网络堆栈,这种模式可以修改优化容器内核参数
    #docker exec -it centos_ftp /bin/bash
    进入容器

     修改容器时间

    # mv localtime localtime_bak
    # cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

    2.5、在容器中安装pure-ftp

    第一步:安装pure-ftp
    默认的 yum 源没有提供 pure-ftpd,需要先安装 epel 扩展源:
    # yum install epel-release
    然后使用 yum 命令安装Pure-ftpd:
    # yum install pure-ftpd
    第二步:修改配置文件
    # vi /etc/pure-ftpd/pure-ftpd.conf
    去掉#注释,指定路径,PureDB用户数据库文件
    PureDB /etc/pure-ftpd/pureftpd.pdb
    开启日志 /var/log/pureftpd.log
    VerboseLog yes
    拒绝匿名用户登录
    NoAnonymous yes
    使用被动模式,并限制端口范围
    PassivePortRange 48000 50000
    删掉注释,并将192.168.0.1修改为当前服务器的公网IP
    ForcePassiveIP 替换为当前服务器的公网IP
    第三步:创建账户,配置权限
    添加ftp用户组
    # groupadd ftpgroup
    #useradd -g ftpgroup -s /sbin/nologin -M ftpuser
    创建目录并配置目录权限
    # mkdir /containerftpdata/替换为创建的目录 -p
    # chown ftpuser:ftpgroup /containerftpdata/替换为创建的目录 -R
    创建虚拟账户
    # pure-pw useradd 替换为虚拟账户 -u ftpuser -d /containerftpdata/替换为创建的目录
    随后会提示输入这个虚拟用户名的登录密码
    #pure-pw mkdb
    第四步:启动pure-ftpd
    # systemctl enable pure-ftpd.service
    # systemctl start pure-ftpd.service

    2.6、安装net-tools

    #yum install net-tools
    #netstat -lntp
    查看 21 端口是否开启
    #ps aux | grep ftp
    查看 ftp 进程

    3、centos 7虚拟机防火墙设置和修改优化容器内核参数

    #firewall-cmd --permanent --add-port=21/tcp 
    #firewall-cmd --permanent --add-port=48000-50000/tcp
    #firewall-cmd --reload
    #firewall-cmd --list-all
    #yum install net-tools
    #netstat -lntp

    如果指定host网络模式创建的容器,可在centos 7虚拟机中调优内核参数,容器的内核参数也随之生效

    #vi /etc/sysctl.conf
    net.ipv4.tcp_keepalive_time = 30    
    #每30s发送一次keepalive数据包
    net.ipv4.tcp_keepalive_intvl = 10
    #确定keepalive探针在第一次保持活动探测后每10s发送一次
    net.ipv4.tcp_keepalive_probes = 6
    #超时前的探测次数
    net.ipv4.tcp_fin_timeout = 300
    #系统默认的超时时间
    
    #sysctl -p
    #reboot

     4、路由器端口映射

    21端口和48000-50000端口  

  • 相关阅读:
    Android上传文件到服务器(转)
    Android -- 利用Broadcast开启Service(转)
    【转】实践最有效的提高Android Studio运行、编译速度方案
    Android Studio3.x新的依赖方式(implementation、api、compileOnly)
    Drawable子类之——StateListDrawable (选择器)
    解决android studio引用远程仓库下载慢(JCenter下载慢)
    跳槽季,面试官:能接受加班吗?
    PHP 底层的运行机制与原理
    PHP程序员如何突破成长瓶颈
    VirtualBox启动虚拟机报错0x80004005
  • 原文地址:https://www.cnblogs.com/laotieshan/p/12103016.html
Copyright © 2020-2023  润新知