2016-01-14 6 views
0

Я относительно новичок в Docker и имею веб-сервер node, который я добавил в docker image. Мое изображение построено с использованием packer, поэтому у меня нет Dockerfile.Запустить приложение узла при запуске контейнера докеров из cli

Мой вопрос: при запуске docker container в командной строке с docker run -it -d <imageId> есть ли способ передать команду для запуска моего веб-сервера, который находится в контейнере? Так что-то вроде docker run -it -d <imageId> npm start

+1

Пробовали ли вы, что вы предложили? Запускать run -it -d npm start', он должен работать. За исключением npm ist не в PATH, тогда вы можете попробовать дать абсолютный путь '/ usr/local/bin/npm' или что бы это ни было. –

+0

Я сделал, но контейнер выйдет, как только он запустится. Я также пробовал то, что предлагается в документах (они используют nginx в качестве примера) '$ docker run -d -p 80:80 my_image nginx -g 'daemon off;'' и все же, когда я проверяю, контейнер запущен, он уже вышел. – hyprstack

+0

«npm start» команда, которая фактически запускает службу (и продолжает работать), или запускает сервис, используя init/upstart/systemd/whatever, а затем завершает работу? –

ответ

0

Понял работы с

docker run -it -d -w /path/to/code/folder <imageName:version> node server.js 'daemon off;'