Я хочу настроить некоторые параметры при запуске моего контейнера, для этого я использую сценарии оболочки. Но мой контейнер завершит работу, как только мои сценарии закончатся, я пробовал использовать флаг -d в режиме "отключен", но он никогда не будет работать в режиме "отключен".
Ниже мой 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 -d ocker' на моей консоли и выйдет
-
Запуск с флагами -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>