我有一个包含自定义文件和二进制文件的docker镜像。我希望能够使用此映像运行docker容器,并在启动容器时启动2个java进程。
目前我手动完成:
docker run -i -t -p 4444:4444 6b23ccf3402c
然后,在我进入容器后,我正在启动我的java进程:
java -jar /app/grid/hint-selenium-server-standalone-1.0.6-jar-with-dependencies.jar -role hub -hubConfig /app/grid/hubConfig.json -log /app/grid/logs/hub.log &
java -Dwebdriver.chrome.driver=/app/node/drivers/chromedriver -Dwebdriver.gecko.driver=/app/node/drivers/geckodriver -Dphantomjs.binary.path=/app/node/drivers/phantomjs -jar /app/node/hint-selenium-server-standalone-1.0.6-jar-with-dependencies.jar -role node -hub http://172.17.0.2:4444/grid/register/ -nodeConfig /app/node/nodeConfig.json -log /app/node/logs/node.log &
我的问题是,如何在一个“docker run”命令中执行此操作?
答案 0 :(得分:2)
您可以通过以下方式实现此目的:
docker run -i -t -p 4444:4444 6b23ccf3402c bash -c "java -jar [...] & java -jar [...] & bash"
但您也可以使用Dockerfile中的CMD statement
CMD java -jar [...] & java -jar [...] & bash
而不是运行docker run -it 6b23ccf3402c