• Centos-706-Docker安装ftp服务


    约定:

      OS:Centos7.6

      ftp端口:7400,7401,7402-7412;其中7400对应20端口,7401对应21端口,其他端口为被动模式下的数据端口

      ftp测试账号和密码 ftptest/123456

      ftp自定账号和密码 ftpsamba/123456

    目标:

      构建ftp服务

    1.下载镜像

      fauria/vsftpd

    2.启动容器  

    docker run -d -v /opt/ftp/ftptest:/home/vsftpd/ftptest 
    -p 7400:20 -p 7401:21 -p  7402-7412:7402-7412 
    -e FTP_USER=ftptest -e FTP_PASS=123456 
    -e PASV_ADDRESS=192.168.125.163 
    -e PASV_MIN_PORT=7402 -e PASV_MAX_PORT=7412 
    --name myvsftpd --restart=always fauria/vsftpd

    3.检查运行

      如下图所示说明容器启动成功

      4.端口设置

    iptables -I INPUT -p tcp --dport 7400 -j ACCEPT 
    iptables -I INPUT -p tcp --dport 7401 -j ACCEPT 
    iptables -I INPUT -p tcp --dport 7402 -j ACCEPT 
    iptables -I INPUT -p tcp --dport 7403 -j ACCEPT 
    iptables -I INPUT -p tcp --dport 7404 -j ACCEPT 
    iptables -I INPUT -p tcp --dport 7405 -j ACCEPT 
    iptables -I INPUT -p tcp --dport 7406 -j ACCEPT 
    iptables -I INPUT -p tcp --dport 7407 -j ACCEPT 
    iptables -I INPUT -p tcp --dport 7408 -j ACCEPT 
    iptables -I INPUT -p tcp --dport 7409 -j ACCEPT 
    iptables -I INPUT -p tcp --dport 7410 -j ACCEPT 
    iptables -I INPUT -p tcp --dport 7411 -j ACCEPT 
    iptables -I INPUT -p tcp --dport 7412 -j ACCEPT
    
    #保存配置
    service iptables save

     5.连接测试

      连接配置

        

       上传测试

         

      如果所示,说明配置成功。

     6.多用户下构建自定账号、文件目录配置

      为了保证新增的FTP账号和访问的目录和Docker宿主上的真正的文件目录能够映射起来,因此采用了一下方式进行配置。

      应用场景示例:DOCKER+FTP+SAMBA组合使用,其中SAMBA所映射的宿主目录为真正的文件目录,而FTP、SAMBA均为映射目录。

      注意:多用户的构建是在单用户构建的基础之上进行的。

      a.进入容器

        docker exec -it myvsftpd /bin/bash

      b.选择目录

        此处我们选择SAMBA共享的目录:/home/bizsmb/data

      c.查看容器

        docker ps

        

          如图所示,记住当前容器Id:eff7bb079c44

      d.停运容器

        docker stop myvsftpd

      e.配置目录

        cd  /var/lib/docker/containers

        查看当前容器ID对应的容器目录: ls

        

        进入容器配置目录

        cd  e7f7bb079c444420f407bbc34717942577d2f795a37614020a7bca922982ee54

        查看目录文件 ls

        

        f.修改config.v2.json配置

        vi config.v2.json |python -m json.tool ,找到如下截图位置,新增与"/home/vsftpd/ftptest"平行的JSON节点:

        

       g.新FTP账号配置

        由于宿主映射到docker时,应确保容器对应的目录,新的FTP账号是存在的,因此重新运行容器并进入。

        docker exec -it myvsftpd /bin/bash

        vi /etc/vsftpd/virtual_users.txt 

          

        在编辑中新建账号 ftpsmb,密码123456,保存退出

        新建FTP账号访问目录

        mkdir -p /home/vsftpd/ftpsmb

        生成二进制文件

        db_load -T -t hash -f/etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db

        退出重启容器

        ftp连接测试

        

           如图所示,说明FTP新账号新增OK。

        退出关闭容器

      h.备份配置

        回到第f步骤

        先备份配置文件

        cp config.v2.json  config.v2.json.bak

        cp hostconfig.json hostconfig.json.bak

      i.开始配置

        配置说明如下图

        

        具体操作如下:

        a.进入目录

          cd  /var/lib/docker/containers

        b.使用ftp下载配置文件

          下载:hostconfig.json

             config.v2.json

        c.修改config.v2.json

          格式化json覆盖源文件,参考截图进行修改

          

        d.修改hostconfig.json

          格式化json覆盖源文件,参考截图进行修改

          

         e.保存并上传配置

          注意:备份原始配置文件后再上传。

      j.重启容器,Docker服务

        systemctl restart docker

      k.ftp连接测试

        此时连接Ok

          

          

        

      

  • 相关阅读:
    vim常用命令总结
    深度学习之 GAN 进行 mnist 图片的生成
    javascript 中的类型
    架构设计小思
    [前端]如何让图片等比例缩放,同时撑满父级容器的长或宽
    深度学习之 seq2seq 进行 英文到法文的翻译
    深度学习之 cnn 进行 CIFAR10 分类
    深度学习之 rnn 台词生成
    深度学习之 mnist 手写数字识别
    前端页面,使用 dom 鼠标拖拽画一个矩形和监听键盘
  • 原文地址:https://www.cnblogs.com/oumi/p/13510314.html
Copyright © 2020-2023  润新知