2016-01-14 20 views
0

我是Docker的新手,我已將node網絡服務器添加到docker image。我的圖像使用packer構建,所以我沒有Dockerfile從cli運行碼頭集裝箱時啓動節點應用程序

我的問題是在命令行上運行docker containerdocker run -it -d <imageId>有沒有辦法傳遞命令來運行駐留在容器中的Web服務器? 因此,像docker run -it -d <imageId> npm start

+1

工作你試試你的建議是什麼? wouldkeer運行-it -d npm start'它應該實際上工作。除了npm ist不在PATH中,那麼你可以嘗試給絕對路徑'/ usr/local/bin/npm'或者其他任何東西。 –

+0

我做過了,但容器一運行就退出。我也嘗試了文檔中的建議(他們使用nginx作爲例子)'$ docker run -d -p 80:80 my_image nginx -g'守護進程關閉;''然後,當我檢查是否容器正在運行,它已經退出。 – 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;'