O PASV FTP funciona bem dentro de contêineres do Docker.
É mais difícil usar o Docker Swarm, mas é possível com uma única réplica ou implantar mode:global
com o mapeamento de porta usando mode:host
.
Como o modo PASV é stateful, as solicitações subseqüentes precisam ser roteadas para o mesmo nó no cluster.
Exemplo de pilha usando o modo host
services:
ftp:
image: vendor/vsftpd
ports:
- { target: 20, published: 20, mode: host }
- { target: 21, published: 21, mode: host }
- { target: 21100, published: 21100, mode: host }
- { target: 21101, published: 21101, mode: host }
- { target: 21102, published: 21102, mode: host }
deploy:
mode: global