我想简单地启动一个 docker 容器来执行一些 java 代码,最终启动 JBoss。
这工作正常,只是我不知道如何再次连接到容器并返回到 bash 提示符。
这就是我启动容器的方式:
docker run -i -t -p 80:80 -v /tmp/automatefiles:/automatefromhost jboss bash -c 'cd automatefromhost; chmod 777 *.*; ./runAutomate.sh;'
这是runAutomate.sh
/usr/bin/java -cp Automate.jar -Djava.net.preferIPv4Stack=true net.Automate > automateresults &
tail -f automateresults
现在,我必须在最后执行尾部操作,以在容器完成运行我的自动化代码后保持容器运行。
最终结果是 Jboss 正在运行,并且我的应用程序配置正确。
现在,当我再次尝试附加到容器时,我只是得到一个空白屏幕,没有提示......并且无法返回到容器内的提示。因此在容器启动后无法与容器进行交互。
关于如何启动容器,保持其运行,然后附加到容器并返回提示符以执行类似操作的任何想法ls, tail etc .
EDIT:
我最终这样做了:
我复制了这个方法:https://stackoverflow.com/a/20932423/1519407 https://stackoverflow.com/a/20932423/1519407并添加到我的脚本中
while ( true )
do
echo "Detach with Ctrl-p Ctrl-q. Dropping to shell"
sleep 1
/bin/bash
done
这看起来仍然有点hacky,但它有效......我认为最好沿着将 ssh 安装到容器上或使用类似的东西的路径走下去http://phusion.github.io/baseimage-docker/ http://phusion.github.io/baseimage-docker/