不用安装vsftpd,直接用ftp管理docker容器里的文件就可以了麻烦--一般有3种方法:通过数据卷或数据卷容器启动容器时,启动vsftpd或sshd等服务,并启用端口映射,然后通过ftp/sftp连接到它来管理进入容器的终端。命令行管理但是这些方式都有一定的缺陷和不便:1和2都需要在启动容器的时候做一些配置。如果容器已经启动,它将停止。而2需要额外的端口映射,占用主机的端口。3的做法比较geek,容器中通常只有基本的shell工具,没有熟悉的工具套件环境,操作费时费力,不够直观。解决方案:ftp-server-for-docker我能想到的更好的方案是结合2和3的方案搭建一个不需要额外启动配置的FTP服务器:ftp-server-for-docker这是一个docker专用的FTP服务器-允许通过FTP协议访问docker容器中的文件(即使docker容器已经启动)。如何基于linuxshellsh和docker安装dockercp。推荐使用npm安装:npminstall-gftp-server-for-docker如何运行示例1例如在localhost:21启动FTP服务器,运行test用户,密码为123456访问:$ftp-server-for-docker-Hlocalhost-p21--userstest:123456FtpServerstartlisteningatlocalhost:21示例2使用ftp-server-for-docker浏览容器wordpress中的文件:查看命令行帮助如果你想详细了解如何使用,可以查看命令行帮助:$ftp-server-for-docker--helpUsage:ftp-server-for-docker[options]Options:--port,-p指定哪个监听端口(默认为21)[number]--host,-H指定绑定哪个主机(默认为0.0.0.0)[string]--annoymous,-a是否启用恼人用户[boolean]--users,-u指定用户(形式如username:password,可以是多个)[array]--config,-c指定使用哪个配置文件--debug是否启用调试模式[boolean]-h,--helpShowhelp[boolean]-?,--helpShowhelp[boolean]Examples:ftp-server-for-docker-hlocalhost-p21在-utest:123localhost:21上启动FTP服务器,允许用户`test`访问。实现原理本FTP服务器网络使用了比较成熟的ftpd,文件系统模块换成了新写的DockerFS。文件系统的基本操作(stat/readdir/open/unlink...)都是通过dockerexec、dockercp和临时文件来完成的,例如:stat就是通过dockerexec
