2015-04-26 4 views
1

У меня есть изображение докеры с Dockerfile, которые успешно строятся с помощью команды docker build .. Dockerfile содержание:Как я могу запустить контейнер для докеров с установленным Nginx?

FROM ubuntu 
RUN apt-get update && apt-get install -y nginx php5 php5-fpm 
ADD . /code 

Как я могу запустить мой Docker контейнер, чтобы увидеть, что Nginx работа?

UPDATE: Когда я пытаюсь использовать следующий Dockerfile:

FROM ubuntu 
RUN apt-get update && apt-get install -y nginx php5 php5-fpm 
RUN sudo echo "daemon off;" >> /etc/nginx/nginx.conf 
CMD service php5-fpm start && nginx 

Он успешно строить с docker build -t my/nginx ., но когда я вхожу docker run --rm -ti my/nginx команду, мой терминал не ответ:

enter image description here

+0

вне темы: любая причина, по которой вы используете php fpm и nginx в одном контейнере? это анти-шаблон в докер (например, установить sshd, чтобы вы могли просматривать журналы). также у докеров есть ссылочные изображения для обоих (читайте: вы получите поддержку, если вам это нужно) – booyaa

+0

@booyaa Спасибо! Я новичок в Docker, и трудно работать с несколькими контейнерами одновременно. Итак, теперь я хочу получить рабочее состояние моего первого контейнера, и если это сработает, я попытаюсь разделить процессы Nginx и php-fpm на отдельные контейнеры. Что вы думаете об этом? –

ответ

6

Когда ты создайте изображение, которое вы, вероятно, захотите указать имя изображения с помощью опции -t.

docker build -t my/nginx . 

Для запуска контейнера используйте команду run

docker run --rm -ti my/nginx 

Вы, вероятно, следует добавить следующую команду в Dockerfile

CMD ["nginx"] 

Или с php5-FPM

CMD service php5-fpm start && nginx 

ОБНОВЛЕНИЕ. Вы должны запустить nginx в качестве демона. Добавьте следующее в свой файл Docker после установки nginx.

RUN echo "daemon off;" >> /etc/nginx/nginx.conf 

Update2.

-ti опция в перспективе позволяет проверять сообщения журнала, если таковые имеются. Обычно вы должны запускать контейнер в фоновом режиме, используя -d вместо -ti. Вы можете прикрепить к работающему контейнеру с помощью команды attach.

Вы также можете проверить docker reference, чтобы узнать, как остановить и удалить контейнер и другие команды.

+0

Спасибо, я добавил строку «CMD service php5-fpm start && nginx' в конце файла Docker, затем успешно сгенерировал изображение и при попытке запустить контейнер имел ошибку:'/bin/sh: 1: nginx: not found' –

+0

Если я использую 'CMD [" nginx "]' У меня была следующая ошибка: 'exec:" nginx ": исполняемый файл не найден в $ PATH FATA [0000] Ответ на ошибку от демона: не удается запустить контейнер 565c2cbc8d60c098bcac276d625390e34ac20f4e4d502723985934ec1c048fa8: [8] Системная ошибка: exec: «nginx»: исполняемый файл не найден в $ PATH' –

+0

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

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