2015-01-14 17 views
5

ドッカーコンテナで実行したいテストがあります。 テストの途中で私はテストデータを変更しています。私はJETTYを再起動する必要があります。ドッカー:コンテナの内部でプロセスを再起動するには?

これを行うにはどうすればよいですか?

私はいくつかのオプションを想像することができます:SSHで

  1. - しかし、ドッキングウィンドウのSSHの最良の選択肢ではありません。

  2. ソケットを聴くためのDocker上のPythonエージェント - もう1つのポートを公開し、jettyを接続して再起動します。

多分もっと良いアイデアがありますか?

ありがとうございました

答えて

10

が鳴りますDockerfileがあればDockerfileに入れ、コンテナ内で 'ps -ef'を実行するとプロセスのPIDが1に設定されていることがわかります。この場合、コンテナ内部から再起動することはできません。

docker restart <container_id> 
+0

これはほぼ1年半前です... :)確かに、これはプロセスを再開する正しい方法です。ドッカーコンテナを再起動する。これがドッカーソリューションの主な原則です。 – SergiiKozlov

2

コンテナに入り、再起動してください。

マニュアルウェイ:

docker exec -it <containeridorname> /bin/bash 

または自動化の道:あなたが再起動しようとしているプロセスがドッキングウィンドウコンテナ(つまり、あなたが設定1の主要なプロセスであるように

docker exec -it <containeridorname> /restartjettycommand.sh 
+0

解決に感謝します。それはうまく動作します。しかし、今私は別の問題があります。私はDockerfileからCMDコマンドでjettyを開始します。そして、私はこのプロセスを再開できないようです:( – SergiiKozlov

+0

私はjettyのための細部についてはわかりません。代わりにrunitやsupervisordのようなものを使うことです。 – user2105103

関連する問題