2017-01-28 3 views
0

Ок, просто узнав о создании файла Docker и моего понимания (что, вероятно, неверно), заключается в том, что команда CMD должна иметь возможность запускать сценарий оболочки из контейнера после его размещения там ,Dockerfile - CMD не запускает сценарий оболочки

Я просто пытаюсь его с ванильным apache2 установить

Dockerfile

FROM ubuntu:latest 

ADD install-apache.sh /Scripts/install-apache.sh 
RUN chmod +x /Scripts/install-apache.sh 
CMD [/Scripts/install-apache.sh] 



RUN echo "Hope this worked!" 

Я также попытался это:

CMD ["/Scripts/install-apache.sh"] 

Когда я использую команду RUN это работает (без [и])

Так что я немного потерял то, что должно делать CMD.

Я следовал инструкциям от http://kimh.github.io и читал документы докеров.

Вопрос: Как я с помощью CMD неправильно и как я должен использовать его в этом случае?

ответ

3
  • RUN выполнен во время создания изображения. Обычно это используется для установки вещей или выполнения изменений в результирующем изображении.
  • CMD Выполняется при запуске контейнера. Используйте это, например, запуска приложений.

проверить Также docs

Основной целью ЦМД является предоставление значения по умолчанию для исполняющего контейнера. Эти значения по умолчанию могут включать исполняемый файл, или они могут опустить исполняемый файл, и в этом случае вы должны указать инструкцию ENTRYPOINT .

+0

О, так CMD запускается, когда пользователь запускает контейнер, который я создаю - и RUN используется, когда я его строю? –

+0

@JeffKranenburg точно – Sebastian

+0

Спасибо @Sebastian - примет через несколько минут, когда SO также позволит мне :-) –

Смежные вопросы