-2

Соединение отклонено при попытке SSH. Но порт 22 не заблокирован. Пингс работает. Я использую виртуальные машины CentOS 7 и Docker с открытым исходным кодом. Я хочу использовать SSH для Docker-контейнеров из других виртуальных машин или других Docker-контейнеров. Как мне это сделать?

Я могу SSH из Docker-контейнеров на их виртуальную хост-машину. Я не могу SSH в контейнеры Docker с виртуальной машины хоста из-за ошибки "Отказано в соединении". Я не могу SSH соединить контейнеры Docker с самими контейнерами из-за "соединения отказано". Результаты Nmap показывают, что порты с 1 по 1000 закрыты, но не фильтруются в каждом контейнере. Я проверил по IP-адресу в результате команды проверки docker.

Я могу пропинговать контейнеры Docker друг от друга, используя их IP-адреса. sftp между контейнерами завершается неудачно из-за "соединения отказано". Принимая во внимание, что на порту 22 нет правила брандмауэра, что является причиной проблемы "отказано в соединении"?

Если вы не знакомы с Docker, можете ли вы сообщить мне возможные основные причины, учитывая, что nmap исключает блокировку портов? Пингс работает. Контейнеры Docker ОЧЕНЬ функционируют подобно серверам Linux.

2 ответа2

1

Поскольку nmap говорит, что порты с 1 по 1000 закрыты (и, в частности, порт 22 закрыт), вероятно, внутри контейнера не работает sshd . Некоторые варианты:

  • Измените ваш Dockerfile чтобы sshd начал работу.
  • Введите свой контейнер (например, docker exec -it <container-id> /bin/bash) и запустите sshd самостоятельно.

Если вы действительно хотите, чтобы sshd мог получить оболочку внутри вашего контейнера, то приведенная выше команда docker exec может быть всем, что вам действительно нужно.

0

Наиболее вероятным объяснением является то, что в док-контейнерах не работает sshd. Вы можете получить оболочку в работающем контейнере следующим образом (что может решить реальную проблему, которую вы пытаетесь решить):

docker exec -it bash

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .