Docker compose ftpd服务器从主机访问

Docker compose ftpd服务器从主机访问,docker,docker-compose,ftp-client,Docker,Docker Compose,Ftp Client,我正在使用尝试从主机访问ftpd服务器 使用ftp localhost或ftp 但是我得到ftp:connect:Connection被拒绝了 因为我使用的是PUBLICHOST:“0.0.0.0”和端口转发21:21,所以我希望能够连接 码头日志 Removing ftpd-server ... done Removing network mytest_default No stopped containers Creating network "mytest_default" with t

我正在使用尝试从主机访问ftpd服务器

使用
ftp localhost
ftp

但是我得到
ftp:connect:Connection被拒绝了

因为我使用的是
PUBLICHOST:“0.0.0.0”
和端口转发
21:21
,所以我希望能够连接

码头日志

Removing ftpd-server ... done
Removing network mytest_default
No stopped containers
Creating network "mytest_default" with the default driver
Creating ftpd-server ... 
Creating ftpd-server ... done
Attaching to ftpd-server
ftpd-server    | Creating user...
ftpd-server    | Password: 
ftpd-server    | Enter it again: 
ftpd-server    | Setting default port range to: 30000:30009
ftpd-server    | Setting default max clients to: 5
ftpd-server    | Setting default max connections per ip to: 5
ftpd-server    | Starting Pure-FTPd:
ftpd-server    |   pure-ftpd  -l puredb:/etc/pure-ftpd/pureftpd.pdb -E -j -R -P 0.0.0.0 -s -A -j -Z -H -4 -E -R -G -X -x   -p 30000:30009 -c 5 -C 5

如何实现从主机到容器上的ftp服务器的连接?

您可以将
网络模式:host
添加到您的服务定义中以使其正常工作

services:
  ftpd-server:
    # ...
    network_mode: host
    # ...
然后用以下方法进行测试:

$ ftp -p localhost 21
Connected to localhost.
220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
220-You are user number 1 of 5 allowed.
220-Local time is now 16:04. Server port: 21.
220-This is a private system - No anonymous login
220 You will be disconnected after 15 minutes of inactivity.
$ ftp -p localhost 21
Connected to localhost.
220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
220-You are user number 1 of 5 allowed.
220-Local time is now 16:04. Server port: 21.
220-This is a private system - No anonymous login
220 You will be disconnected after 15 minutes of inactivity.