Запуск образа докера в Openshift Origin

Я новичок в Openshift Origin. Сейчас я пытаюсь развернуть свои докер-контейнеры в источнике OpenShift. Для этого я создал очень простой контейнер докеров, который складывает два числа и дает результат:

https://github.com/abrahamjaison01/openshifttest

Я создал образ докера локально и публичный образ докера в концентраторе докеров:

docker pull abrahamjaison/openshifttest

Я запускаю образ докера локально следующим образом:

 [root@mymachine /]# docker run -it --rm abrahamjaison/openshifttest
 Enter first large number 
 12345 
 Enter second large number 
 54321 
 Result of addition = 66666

Поскольку я новичок в Openshift, я понятия не имею, как развернуть его в среде Openshift.

Я создал новый проект: oc new-project openshifttest

Затем новое приложение: oc new-app docker.io/abrahamjaison/openshifttest

Но тогда я не знаю, как получить доступ к консоли / терминалу для ввода данных. Также много раз, когда я запускаю это, я получаю вывод «сбой развертывания», когда я запускаю команду «oc status».

В основном я хотел бы знать, как я могу развернуть этот образ докеры на openshift и как я смогу получить доступ к терминалу, чтобы предоставить входные данные для выполнения добавления.
Может ли кто-нибудь помочь мне с этим?


person Abraham Jaison    schedule 26.10.2016    source источник


Ответы (2)


OpenShift в основном предназначен для длительно работающих служб, таких как веб-приложения и базы данных. На самом деле он не предназначен для запуска контейнера Docker, чтобы обернуть команду, которая затем возвращает результат в консоль и завершает работу.

Чтобы лучше понять, как используется OpenShift 3, загрузите и прочтите бесплатную электронную книгу по адресу:

Ближе всего к тому же, что и docker run, вы сможете выполнить команду oc run, но она как бы нарушает всю суть того, для чего предназначен OpenShift. Вам лучше использовать Docker в своей собственной системе для того, что вы описываете.

Предполагаемая команда, которую вы бы использовали, если бы действительно захотела попробовать, была бы такой:

oc run test -i --tty --rm --image=abrahamjaison/openshifttest

Как я уже сказал, на самом деле не предназначен для этого. Это oc run существует больше для тестирования при возникновении проблем с развертыванием ваших приложений.

person Graham Dumpleton    schedule 26.10.2016
comment
Спасибо. Это действительно помогло мне развернуть образ докера. Однако у меня все еще есть сомнения по поводу oc new-app и oc run. Насколько они разные? Мой вариант использования заключается в том, что у меня есть образ докера, который требует некоторых входных данных во время запуска, а затем на основе этих переданных параметров он запускает процесс демона и поддерживает его. Поскольку я новичок в openshift, я не могу различить использование oc new-app и oc run и служб и модулей. Также, когда я делаю oc new-app, я не могу получить доступ к терминалу для ввода данных. oc run -i -tty предоставляет мне интерфейс для ввода данных. - person Abraham Jaison; 27.10.2016
comment
Если вы хотите предоставить приложению входные данные с помощью oc new-app, вам необходимо передать их в переменных среды. Вы не можете передать их интерактивным способом из командной строки с помощью запроса приложения в момент запуска приложения. - person Graham Dumpleton; 27.10.2016
comment
Команда oc new-app предназначена для таких сервисов, как веб-приложения, которые будут работать постоянно и которые, если они завершатся по какой-либо причине, должны быть перезапущены. Он не предназначен для заданий, требующих ввода и выполняемых до завершения. В Kubernetes есть концепция заданий для запуска чего-то, что предназначено для выхода, которое вы можете использовать в OpenShift, но ваше приложение должно будет куда-то выгружать результаты или хранить их в постоянном томе, чтобы их можно было получить. - person Graham Dumpleton; 27.10.2016
comment
Хорошо..! Я думаю, что добираюсь туда ..! :) Еще одно сомнение, которое возникает, когда мы выдаем oc new-app сервис запускается, верно. Итак, когда мы вводим команду oc run, что именно запускается - служба, постоянный ток или модуль? - person Abraham Jaison; 27.10.2016
comment
Когда вы используете oc run, вероятно, просто стручок. - person Graham Dumpleton; 27.10.2016
comment
На самом деле, возможно, создается специальный deploymentconfig, который, в свою очередь, по-прежнему генерирует replication controller и pod. Может зависеть от того, прикреплен ли контейнер к вашему терминалу или нет. - person Graham Dumpleton; 28.10.2016

Следуя разделу «Создание приложения из изображения» , синтаксис должен быть:

oc new-app abrahamjaison/openshifttest

По умолчанию OpenShift будет искать изображение в DockerHub.
Но это предполагает, что вы разместили свой образ GitHub там сначала: см. "Хранить образы в Docker Hub" . Это может быть недостающий шаг в вашем процессе.

Взаимодействие с oc осуществляется с помощью интерфейса командной строки OpenShift или веб-консоли, как показано на странице аутентификации < / а>.

person VonC    schedule 26.10.2016