docker 中安装文件服务器 vsftpd

之前直接在 centos 上面搭建 vsftpd,特别费劲,那么多配置的地方,以及繁琐的操作。就想着在 docker 上面去试试,毕竟有这么简单的方式去搭建,干不用。

搭建过程

第一步:准备工作

创建一个文件夹,作为我们上传文件的目录地址;创建一个用户(不能登录系统),作为访问文件服务器使用。

//  创建 ftp文件目录
cd /home
mkdir ftp

// 创建一个组,用于存放ftp 用户
groupadd ftpuser
 
// 创建ftp用户,并加入ftpgroups组
useradd -d /home/ftp -g ftpuser ftptest

// 设置密码(123456)
passwd ftptest

// 不允许登录
usermod -s /sbin/nologin ftptest

第二步:拉取镜像

// 首先搜索镜像包
docker search vsftpd

// 拉取镜像
docker pull fauria/vsftpd

第三步:启动容器

PASV_ADDRESS 这个参数是需要设置成为自己的机器上面的

docker run -d -v /home/ftp:/home/vsftpd \
-p 20:20 -p 21:21 -p  21100-21110:21100-21110 \
-e FTP_USER=ftptest -e FTP_PASS=123456 \
-e PASV_ADDRESS=192.168.62.129 \
-e PASV_MIN_PORT=21100 -e PASV_MAX_PORT=21110 \
--name vsftpd --restart=always fauria/vsftpd

相关参数说明:

  • /home/ftp:/home/vsftpd:映射 docker 容器 ftp 文件根目录(冒号前面是宿主机的目录)
  • -p:映射 docker 端口(冒号前面是宿主机的端口)
  • -e FTP_USER=test -e FTP_PASS=test :设置默认的用户名密码(都为 test)
  • PASV_ADDRESS:宿主机 ip,当需要使用被动模式时必须设置。
  • PASV_MIN_PORT~ PASV_MAX_PORT:给客服端提供下载服务随机端口号范围,默认 21100-21110,与前面的 docker 端口映射设置成一样。

测试

// 切换路径
cd /home/ftp/ftptest

// 创建文件
touch 1.txt

浏览器访问:

ftp://ftptest:[email protected]:21

docker 中安装文件服务器 vsftpd_第1张图片

// 如果防火墙没开,执行下面命令
firewall-cmd --permanent --add-port=20/tcp
firewall-cmd --permanent --add-port=21/tcp
firewall-cmd --reload

 

你可能感兴趣的:(docker)