代码之家  ›  专栏  ›  技术社区  ›  Adi Ohana

根据docker run命令启动java进程

  •  0
  • Adi Ohana  · 技术社区  · 6 年前

    我有一个带有自定义文件和二进制文件的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”命令中完成?

    1 回复  |  直到 6 年前
        1
  •  2
  •   Murmel    6 年前

    您可以通过以下方式实现这一点:

    docker run -i -t -p 4444:4444 6b23ccf3402c bash -c "java -jar [...] & java -jar [...] & bash"
    

    但你也可以使用 CMD statement 在Dockerfile里面

    CMD java -jar [...] & java -jar [...] & bash
    

    然后运行 docker run -it 6b23ccf3402c