Я пробовал следовать некоторым учебным пособиям и документации по докетированию моего веб-сервера, но мне не удается запустить службу через команду запуска docker.
Это мой файл Docker:
FROM ubuntu:trusty
#Update and install stuff
RUN apt-get update
RUN apt-get install -y python-software-properties aptitude screen htop nano nmap nginx
#Add files
ADD src/main/resources/ /usr/share/nginx/html
EXPOSE 80
CMD service nginx start
Я создаю свое изображение:
docker build -t myImage .
И когда я запустил его:
docker run -p 81:80 myImage
он просто останавливается:
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
90e54a254efa pms-gui:latest /bin/sh -c service n 3 seconds ago Exit 0 prickly_bohr
Я ожидаю, что это будет работать с портом 81- > 80, но это не так. Выполнение
docker start 90e
похоже, ничего не делает.
Я также попытался ввести его напрямую
docker run -t -i -p 81:80 myImage /bin/bash
и отсюда я могу начать службу
service nginx start
и с другой вкладки я вижу, что он работает по назначению (также в моем браузере):
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
408237a5e10b myImage:latest /bin/bash 12 seconds ago Up 11 seconds 0.0.0.0:81->80/tcp mad_turing
Итак, я предполагаю, что это то, что я делаю неправильно с моим Dockerfile? Может ли кто-нибудь помочь мне в этом, я совершенно новый для Докера. Спасибо!
РЕШЕНИЕ: На основе ответа от Ivant я нашел другой способ запустить nginx на переднем плане. Мой Dockerfile CMD теперь выглядит следующим образом:
CMD /usr/sbin/nginx -g "daemon off;"