ubuntu制做vsftpd的docker镜像

一、Dockerfile

FROM ubuntu:24.04  
 
RUN apt-get update 
RUN apt-get install -y vsftpd 
  
RUN mkdir -p /var/run/vsftpd/empty
RUN mkdir -p /home/vsftpd 

COPY ./conf/vsftpd.conf /etc/vsftpd.conf
COPY ./conf/start-vsftpd.sh /usr/local/bin/start-vsftpd.sh
RUN  chmod +x /usr/local/bin/start-vsftpd.sh

EXPOSE 20 21 21100-21110

CMD ["/usr/local/bin/start-vsftpd.sh"]

二、 vsftpd.conf

listen=YES
listen_ipv6=NO
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
pasv_enable=YES
pasv_min_port=21100
pasv_max_port=21110
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO
allow_writeable_chroot=YES
pasv_address=192.168.109.200

三、start-vsftpd.sh

#!/bin/bash

if [ -n "$PASV_ADDRESS" ]; then
  sed -i "s/pasv_address=.*/pasv_address=$PASV_ADDRESS/" /etc/vsftpd.conf
fi

if [ -n "$FTP_USER" ] && [ -n "$FTP_PASS" ]; then
  useradd -m -d /home/vsftpd/$FTP_USER $FTP_USER
  echo "$FTP_USER:$FTP_PASS" | chpasswd
  echo $FTP_USER > /etc/vsftpd.userlist
  chown $FTP_USER:$FTP_USER /home/vsftpd/$FTP_USER
fi

/usr/sbin/vsftpd /etc/vsftpd.conf

四、构建容器


#!/bin/bash
name=ftp-svc

docker build -t  $name  .

docker run -d  \
   -p 220:20   -p 221:21  \
   -p 21100-21110:21100-21110   \
   -e PASV_ADDRESS=192.168.109.200  \
   -e FTP_USER=wmy   \
   -e FTP_PASS=123456  \
   -v ./data:/home/vsftpd/wmy  \
   --name $name \
   $name

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值