首页 > 技术文章 > Centos-706-Docker安装ftp服务

oumi 2020-08-15 21:01 原文

约定:

  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

      

      

 

 

    

  

推荐阅读