基于Docker在centos镜像上安装vsftpd(FTP服务器)

822 阅读2分钟

基于Docker在centos镜像上安装vsftpd(FTP服务器)

要求

  • 基础镜像为 centos:centos7.8.2003

一、拉取镜像

docker pull centos:centos7.8.2003

二、 启动容器

# -i 以交互模式运行容器,通常与-t同时使用
# -t 为容器重新分配一个伪输入终端
# -d 后台运行容器
# -p 指定端口映射,格式为: 主机(宿主)端口:容器端口  -p 40000-40050:40000-40050 主机端口根据实际情况更改,容器端口已在容器内部写死
# --privileged 使用该参数,容器内的root拥有真的root权限。否则,容器内的root只是外部的一个普通用户权限。 在本文中,不加--privileged 无法执行      systemctl命令 配合最后init命令使用
docker run -itd --name="centos-vsftpd" -p 21:21 -p 20:20 -p 40000-40050:40000-40050 --privileged centos:centos7.8.2003 init

三、 进入容器

docker exec -it centos-vsftpd /bin/bash

四、 通过yum安装vsftpd

yum install -y vsftpd

五、 修改vsftpd的配置文件

vim /etc/pam.d/vsftpd
#auth       required    pam_shells.so
vim /etc/vsftpd/vsftpd.conf
pasv_enable=YES     #开启被动模式
pasv_min_port=40000  #设置被动模式传输数据的端口范围
pasv_max_port=40050  #设置被动模式传输数据的端口范围

六、 启动vsftpd 服务

systemctl start vsftpd.service
#将服务设置为每次自启动
systemctl enable vsftpd.service

七、 新建FTP用户并修改密码

useradd -d /var/ftp/public_root -g ftp -s /sbin/nologin ftpuser
#修改密码
passwd ftpuser

八、 登录FTP

#注意使用被动模式
ftp 127.0.0.1

九、 生成镜像

docker commit 656cccf24a22 centos-sftp:v2.0

十、启动新镜像时

docker run -itd --name="centos-vsftpd" -p 21:21 -p 20:20 -p 40000-40050:40000-40050 --privileged centos-sftp:v3.0 init