Контейнер 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" тег в конце файла ключа. Я не уверен, должен ли я включить этот тег. Итак, я попробовал несколько вещей:

  1. ssh-rsa KeyString yu@yu-VirtualBox
  2. ssh-rsa KeyString
  3. 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.

Другие вопросы по тегам