действительно помогает улучшить качество вашего поста. Помните, что вы отвечаете на вопрос читателей в будущем, и эти люди могут не знать причин, по которым вы предлагаете код.

у настроить некоторые параметры при запуске моего контейнера, для этого я использую сценарии оболочки. Но мой контейнер завершит работу, как только мои сценарии закончатся, я пробовал использовать флаг -d / detached, но он никогда не будет работать в отдельном режиме.

Ниже мой Dockerfile

FROM ubuntu:14.04

ADD shell.sh /usr/local/bin/shell.sh

RUN chmod 777 /usr/local/bin/shell.sh

CMD /usr/local/bin/shell.sh

Ниже мой сценарий оболочки

#!/bin/bash
echo Hello-docker

Беги без всякого флага

docker run hello-docker

Это напечатает 'Hello-Docker' на моей консоли и выйдет

Запустить с флагами -itd

docker run -itd hello-docker

и, как показано ниже, вывод моей консоли, на этот раз также скоро выйдет.:(

Разница, которую я увидел, в разделе КОМАНДА, когда я запускаю командный раздел с другими изображениями, показывает «/ bin / bash» и продолжает работу в автономном режиме.

И когда я запускаю мое изображение в контейнере с командным скриптом, в разделе COMMAND будет отображаться "/ bin / sh -c / usr / loca" и Exit.

Я хочу запустить контейнер, пока я не остановлю его вручную.

РЕДАКТИРОВАТЬ:

После добавления инструкции ENTRYPOINT в Dockerfile это не выполнит мой скрипт оболочки :(

FROM ubuntu:14.04

ADD shell.sh /usr/local/bin/shell.sh

RUN chmod 777 /usr/local/bin/shell.sh

CMD /usr/local/bin/shell.sh

ENTRYPOINT /bin/bash

Согласно документации докераВот

CMD будет переопределен при запуске контейнера с альтернативными аргументами, поэтому, если я запусту образ Docker с некоторыми аргументами, как показано ниже, не будет выполнять инструкции CMD. :(

sudo docker run -it --entrypoint=/bin/bash <imagename>

Ответы на вопрос(4)

Ваш ответ на вопрос