Контейнер IBM, "Соединение отказано", когда SSH к общедоступному IP
Я использую IBM Bluemix и Docker.
[Моя цель] Я хочу создать контейнер. На веб-сайте я обнаружил, что мы можем использовать SSH для входа в систему от имени пользователя root. Думаю, я мог бы также установить maven и MySQL на этот контейнер. Хотя IBM Container является файловой системой на основе Docker, мы могли бы рассматривать контейнер как виртуальную машину Linux (пожалуйста, исправьте меня, если ошибаюсь).
Я нашел подобный вопрос здесь, где njleviere сказал, что порт 22 закрыт. Как определить, открыт порт или закрыт? Если он закрыт, как мне его открыть? Кроме того, я думаю, что порт 22 действительно открыт в моем случае.
[Описание проблемы] Я в основном следил за этим сайтом, но вместо Putty я использую Ubuntu и SSH.
Сначала я создаю файл ключа с ssh-keygen
, Для имени файла я попробовал "cloud" и "cloud.key". Оба не удалось. Поэтому я думаю, что имя для ключа не имеет значения (пожалуйста, исправьте меня, если неправильно).
Я открываю .pub
ключ. E сть "yu@yu-VirtualBox"
тег в конце файла ключа. Я не уверен, должен ли я включить этот тег. Итак, я попробовал несколько вещей:
ssh-rsa KeyString yu@yu-VirtualBox
ssh-rsa KeyString
KeyString
Все не удалось.
Затем я создал контейнер. Я выбираю "ibmliberty"
, Учитывая общедоступный IP-адрес, который я создал ранее (уже отвязанный от любых контейнеров), я добавил 22 в общедоступный порт. И вставил "cloud.pub"
на ключ SSH. Через несколько минут контейнер начал работать. Следующие две ссылки являются снимком экрана для консоли Bluemix при создании контейнера.
Тогда я мог видеть страницу по умолчанию для порта 9080 в браузере для https://169.44.124.121:9080/. В нем говорилось "Добро пожаловать в Liberty" и "WebSphere Application Server V8.5.5.9".
Затем я набрал (облако и cloud.pub является ключевой файл)
ssh -i облачный корень@169.44.124.121
Тогда я получаю
SSH: подключиться к хосту 169.44.124.121 порт 22: соединение отказано
я использовал cf ic ps
проверить порт. Выглядит хорошо. я вижу 169.44.124.121:22->22/tcp
под портами.
Также я вижу, что многие программисты используют файл Docker для запуска IBM Container. Должен ли я переключиться на файл Docker вместо этого веб-интерфейса консоли IBM?
1 ответ
Стандартное изображение ibm-liberty в bluemix не включает sshd. Вы можете добавить его - вам нужно добавить supervisord, sshd и соответствующую конфигурацию для обоих в ваш Dockerfile.
И наоборот, если вам действительно нужно только безопасное соединение командной строки с вашим контейнером, вы можете использовать cf ic exec или docker exec. (например cf ic exec -ti mycontainername bash
) Это даст вам командную строку без накладных расходов (и риска для безопасности) работающего sshd.