2017-05-30 14 views
1

Dockerコンテナ内でJavaアプリケーションを実行していて、同じJavaアプリケーション・コードから実行中のドッキング・コンテナ(Javaアプリケーションが実行されている)の名前を取得したい場合は、 、どのようなJavaコードを介してコンテナの名前を取得する方法は何ですか?Javaコードでドッキング・コンテナ名を取得する方法

Javaコードをコンテナ内で実行されているのと同じJavaアプリケーションに入れたいとします。

答えて

3

あなたが持っていることを確認してください可能性がありdocker.sock mounted, and call docker inspect from there(以降することができますcall docker command with Java

しかし、それは過度に複雑なようだ(とhostnameがコンテナ起動時がオーバーライドされないさに依存しています:it does not work in edge cases

多くをより簡単な解決策は、コンテナ名を環境変数として渡すことであろう。

docker run -e name=<containerName> --tag <containerName> ... 

そのようにすれば、コンテナを始めるときに自分で設定したJava query an environment variableから行うことができます。

+0

あなたの答えをありがとう。しかし、ドッカーを実行している間にコンテナ名を渡したくなければどうしますか? Javaコードからコンテナ名を見つける簡単な方法はありますか? –

+0

@RajibBiswasいいえ:名前を渡すのが最も簡単なwxayです:なぜドッカーの走り方でそれを設定できないのですか? – VonC

+0

私たちは製品として、顧客にベースイメージを提供してから、自分のアプリケーションイメージをベースイメージの上に作成し、コンテナを実行します。それで、ドッカーを走らせようとしているのは私たちではなく、私たちの顧客はそうするつもりです。だから私は顧客にドキッとしている間に名前を強制することはできません。私は今あなたが私の問題を理解することを願っています –

関連する問題