在码头集装箱内启动服务
问题描述:
我可以在交互模式下运行此容器,然后启动Apache服务。这按预期工作。在码头集装箱内启动服务
# docker run -p 81:80 -it shantanuo/adminer
[email protected]:/# /etc/init.d/apache2 start
是否有可能启动容器和Apache使用相同的命令是这样的?
docker run -p 81:80 -d shantanuo/adminer /etc/init.d/apache2 start
上述命令不启动apache服务也不启动容器。
答
谷歌是我的朋友:
docker run -p 81:80 -d shantanuo/adminer /bin/bash -c "/usr/sbin/apache2ctl -D FOREGROUND "
要小心,这样做,你的过程实际上是'bash'而不是'apache2'。当你发送信号给容器(停止,重新启动等)时,它们将被'bash'接收到,而不会传播给apache。改为使用'/ usr/sbin/apache2ctl -D FOREGROUND'命令启动会更好。 –