действительно помогает улучшить качество вашего поста. Помните, что вы отвечаете на вопрос читателей в будущем, и эти люди могут не знать причин, по которым вы предлагаете код.
у настроить некоторые параметры при запуске моего контейнера, для этого я использую сценарии оболочки. Но мой контейнер завершит работу, как только мои сценарии закончатся, я пробовал использовать флаг -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>