1

我复制了此博客中的内容:https ://www.xavignu.com/?p=1667但无法 ftp 进入。

我正在使用 Docker 快速启动终端在 Windows 10 上运行。当我跑

码头工人--版本

我得到:

Docker 版本 18.09.3,构建 774a1f4eee

我做了一些小改动。所以我的实际文件是: vsftpd.conf

anonymous_enable=NO
local_enable=YES
virtual_use_local_privs=YES
write_enable=YES
local_umask=022
pam_service_name=vsftpd.virtual
guest_enable=YES
user_sub_token=$USER
local_root=/home/vftp/$USER
chroot_local_user=YES
allow_writeable_chroot=YES
hide_ids=YES
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log

vsftpd.virtual

#%PAM-1.0
auth       required     pam_userdb.so db=/etc/vsftpd/vsftpd-virtual-user
account    required     pam_userdb.so db=/etc/vsftpd/vsftpd-virtual-user
session    required     pam_loginuid.so

vusers.txt

ftpuser
letmein

centos-vsftpd

# Dockerfile for vsftpd on CentOS
FROM centos:7
#FROM fedora:14
MAINTAINER xavi@xavignu.com

RUN yum -y update; yum -y install which vsftpd net-tools vsftpd-sysvinit; yum clean all

COPY vusers.txt /etc/vsftpd/
RUN db_load -T -t hash -f /etc/vsftpd/vusers.txt /etc/vsftpd/vsftpd-virtual-user.db; rm -v /etc/vsftpd/vusers.txt; \ 
chmod 600 /etc/vsftpd/vsftpd-virtual-user.db
COPY vsftpd.conf /etc/vsftpd/
COPY vsftpd.virtual /etc/pam.d/
RUN mkdir -p /home/vftp/ftpuser; chown -R ftp:ftp /home/vftp

EXPOSE 20 21

CMD ["/usr/sbin/vsftpd","-obackground=NO"]

当我运行时:

docker build -t centos-vsftpd -f centos-vsftpd 。

我明白了

将构建上下文发送到 Docker 守护进程 5.632kB 步骤 1/10:FROM centos:7 ---> 5e35e350aded 步骤 2/10:维护 xavi@xavignu.com ---> 使用缓存 ---> 5d3678c186ef 步骤 3/10:运行yum -y 更新;yum -y install which vsftpd net-tools vsftpd-sysvinit; yum clean all ---> 使用缓存 ---> e8f9bd668fd7 步骤 4/10:复制 vusers.txt /etc/vsftpd/ ---> 使用缓存 ---> e99de963d214 步骤 5/10:运行 db_load -T -t哈希 -f /etc/vsftpd/vusers.txt /etc/vsftpd/vsftpd-virtual-user.db;rm -v /etc/vsftpd/vusers.txt;chmod 600 /etc/vsftpd/vsftpd-virtual-user.db ---> 使用缓存 ---> 2afd82b0d521 步骤 6/10:复制 vsftpd.conf /etc/vsftpd/ ---> 使用缓存 ---> c2cf93124456步骤 7/10:复制 vsftpd.virtual /etc/pam.d/ ---> 使用缓存 ---> 751b36e2a908 步骤 8/10:运行 mkdir -p /home/vftp/ftpuser;chown -R ftp:ftp /home/vftp ---> 使用缓存 ---> 8e40b2c6857f 步骤 9/10:EXPOSE 20 21 ---> 使用缓存 ---> 721b161ef41f 步骤 10/10:CMD ["/usr /sbin/vsftpd","-obackground=NO"] ---> 使用缓存 ---> d411b32e138a 成功构建 d411b32e138a 成功标记 centos-vsftpd:latest 安全警告:您正在从 Windows 针对非 Windows 构建 Docker 映像码头工人主机。添加到构建上下文的所有文件和目录都将具有“-rwxr-xr-x”权限。建议仔细检查和重置敏感文件和目录的权限。使用缓存 ---> d411b32e138a 成功构建 d411b32e138a 成功标记 centos-vsftpd:latest 安全警告:您正在从 Windows 针对非 Windows Docker 主机构建 Docker 映像。添加到构建上下文的所有文件和目录都将具有“-rwxr-xr-x”权限。建议仔细检查和重置敏感文件和目录的权限。使用缓存 ---> d411b32e138a 成功构建 d411b32e138a 成功标记 centos-vsftpd:latest 安全警告:您正在从 Windows 针对非 Windows Docker 主机构建 Docker 映像。添加到构建上下文的所有文件和目录都将具有“-rwxr-xr-x”权限。建议仔细检查和重置敏感文件和目录的权限。

当我跑

docker run -d --name myftp centos-vsftpd:latest; 码头工人ps

我得到:

C:\Program Files\Docker Toolbox\docker.exe:来自守护进程的错误响应:冲突。容器名称“/myftp”已被容器“05a1533975a6fb703a92d9a185f2ed5ffef6843f4ff5a3298037759cfadff85”使用。您必须删除(或重命名)该容器才能重用该名称。请参阅“C:\Program Files\Docker Toolbox\docker.exe run --help”。容器 ID 图像命令创建的
状态端口
名称 d069ad5b8751 fauria/vsftpd
"/usr/sbin/run-vsftp..." 23 小时前 23 小时前
0.0.0.0:20-21->20-21/tcp, 0.0.0.0:21100- 21110->21100-21110/tcp vsftpd bee37fe97faa elwyn5150/get-started:part2 "python app.py"
getstartedlab_web.4.eyhn8lla4z9jk2w759yirkc40 cbd4e22a05f3
elwyn5150/get-started:part2 "python app.py" 24 hours ago Up 24 hours 80/tcp
getstartedlab_web.3.7jf7ko695b7vge176n4cvt5fu 1072a9d62
/get-started:part2 "python app.py" 24 小时前启动 elwyn51 24 hours 80/tcp
getstartedlab_web.5.714wm1hfrjt9kpwqgdomptbmh 6ca018732d0e
elwyn5150/get-started:part2 "python app.py" 24 hours ago Up 24 hours 80/tcp
getstartedlab_web.1.5w5v62j9zbhooeulx97v286q3 cfc72b5ba0fc
elwyn5150/get-started:part2 "python app.py" 24 小时前 24 小时 80/tcp
getstartedlab_web.2.abdeplq9ocx0mgq890w034g85 f1921c8a441e
dockersamples/visualizer:stable "npm start" 24 小时前 Up 24 hours 8080/tcp

当我尝试通过 ftp 连接到 localhost(使用默认端口号)时,连接被拒绝。

我尝试过很多事情,但对我没有用。我尝试了各种 IP 地址和许多不同的端口号,但仍然无法连接。我还更改了 Windows Defender 防火墙的入站规则以允许其他端口工作。

我应该使用什么主机和端口?我还能尝试什么?

4

0 回答 0