FTP-клиент не работает внутри контейнера Docker

Я пытаюсь получить мое приложение работает Докер, но я намучилась с ней.

приложение подключается к удаленному FTP-серверу в режиме PASV и помещает файл. Довольно просто и прекрасно работает без docker. Ни FTP-сервер, ни клиент не находятся за любым NAT; но клиент становится NAT, потому что я использую мостовую сеть Docker. (Используя по умолчанию мост конфиг http://pastie.org/10954592)

Если я смотрю на tshark на FTP сервере при запуске клиентского приложения он обменивается большим количеством пакетов, поэтому он "подключается" к серверу, но приложение ничего не получает обратно. Это заставляет меня предположить, что, когда FTP-сервер пытается ответить на этот эмпирический порт, он не направляется обратно в контейнер Docker из ОС хоста.

Итак, мы надеемся подвести итог, есть ли хороший способ, чтобы эти порты pasv были правильно перенаправлены на мост docker? ограничения: Я не контролирую FTP сервер в производстве, поэтому я не могу просто жестко закодировать список портов pasv для iptables.

Спасибо за любые идеи!

19
задан Iskar
20.02.2023 17:51 Количество просмотров материала 2945
Распечатать страницу

1 ответ

PASV FTP отлично работает внутри контейнеров Docker.

это становится все труднее с помощью Docker Swarm, но возможно с одной репликой или в deploy mode:global с сопоставлением портов с помощью mode:host.

поскольку режим PASV отслеживает состояние, последующие запросы должны направляться на тот же узел в кластере.

пример стека в режиме хоста

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
0
отвечен Ryan 2023-02-22 01:39

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя

Похожие вопросы про тегам:

docker
ftp
iptables
nat
networking
Вверх