在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
或者如果要在容器启动时始终运行此命令,请查看CMD
和ENTRYPOINT
命令。
另外请记住,要使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/
- 如何将用户的现有.ssh目录挂载到Docker容器中?
- 从Docker运行改为Docker-compose; 关于集装箱间networking通信的不可预知的行为
- 比睡眠无限清洁
- 使用泊坞窗图像手动启动超级对等
- docker工人:docker工人与XAMMP / MAMP相比,类似的url是什么?
- docker-compose:为多个服务使用多个Dockerfiles
- 使用docker-compose将多个docker容器链接到一个具有别名localhost的容器
- 如何告诉部署到群集中的随机机器上的Docker容器在自己的主机上使用DNS?
- 如何在docker中运行google chrome headless?