在docker运行期间的多个命令

我是新来的docker,我创build了一个运行轨应用程序的docker图像。 现在我想在后台运行该应用程序作为一个deamon,但它一直在救助我:

docker run -d -p 2000:2000 image_name "source ~/.bash_profile; cd src; rails s" 

如您所见,我的rails应用程序位于src目录中。

我也尝试在docker镜像的bashrc中添加railspath,但仍然出错,如下所示:

请有人纠正我。

你可以将你的命令封装在startup.sh东西中,然后使其可执行。 然后,只需调用docker run -d -p 2000:2000 image_name startup.sh或者如果要在容器启动时始终运行此命令,请查看CMDENTRYPOINT命令。

另外请记住,要使Docker容器保持运行,您需要在前台保持活动状态。

尝试以下方法:

 docker run -d -p 2000:2000 image_name sh -c 'source ~/.bash_profile; cd src; rails s' 

这是因为docker不支持运行多个命令,而“sh -c”是一个命令。

参考: http : //timmurphy.org/2015/02/27/running-multiple-programs-in-a-docker-container-from-the-command-line/