簡體   English   中英

Docker:如何重啟容器內的進程?

[英]Docker: how to restart process inside of container?

我有一組測試,我想在docker容器上運行。 在測試過程中,我正在更改測試數據,我需要重新啟動JETTY。

最好的方法是什么?

我可以想象一些選擇:

  1. 使用SSH - 但對於docker ssh不是最好的選擇。

  2. Docker上的Python代理監聽套接字 - 再暴露一個端口,連接並重啟jetty。

也許有更好的想法?

謝謝

聽起來你正在嘗試重啟的進程是docker容器的主要進程(即你在Dockerfile中設置的進程,如果你有一個,當你在容器內運行'ps -ef'時你會看到PID為您的過程設置為1)。 如果是這種情況,則無法從容器內重新啟動它。 您應該只重新啟動容器本身:

docker restart <container_id>

輸入容器並重新啟動它。

手動方式:

docker exec -it <containeridorname> /bin/bash

或自動化方式:

docker exec -it <containeridorname> /restartjettycommand.sh

您需要使用entrypoint shell script來構建docker文件,以便將文件復制到容器中。

你的entrypoint.sh或稱之為runjettytests.sh

偽代碼看起來像:

#!/bin/sh
java -jar start.jar
$runTests
java -DSTOP.PORT=8080 -DSTOP.KEY=stop_jetty -jar start.jar --stop
cp dataset2 data/
java -jar start.jar
$runTests2
java -DSTOP.PORT=8080 -DSTOP.KEY=stop_jetty -jar start.jar --stop
exit(0)

顯然你的用例可能會有所不同,但這是一個粗略的想法

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM