2017-07-12 12 views
0

jvm。ドッカーコンテナのホスト名

私が得るすべては、そのような標準的なドッキングウィンドウのホスト名です:私は、コンテナが、すべてがうまく動作します開始された後の上、このエクスポートを使用して、手動でホスト名を設定すると

/ # env 
HOSTNAME=04dbf311a3be 

。 compose stackfileを使用してすべてがswarmで実行されています。

EDIT1: 私は

EDIT2コンテナのビルド時にはなく、起動時にこれをやっておりません:は は私が持っているもの、明確にする:

ドッカーSWARM:

CONTAINER1 
HOSTNAME=391fa2c7e184 
CONTAINER2 
HOSTNAME=39123a43242asd4 
CONTAINER3 
HOSTNAME=123123123123 

私が欲しいもの:

CONTAINER1 
HOSTNAME=APPNAME-391fa2c7e184 
CONTAINER2 
HOSTNAME=APPNAME-123fa2c7e184 
CONTAINER3 
HOSTNAME=APPNAME-343fa345e184 

、私はこれを達成しようとするん

どのようにこれはautmatically n型コンテナの起動時に設定することにしたい。

私が(で指さコンテナの起動時に呼び出されstart.shファイルでこれを設定しようdockerfileでENTRYPOINTコマンド):効果がない

#!/bin/sh 
export HOSTNAME=something-$(hostname) 
java $JAVA_OPTS -jar /app.jar 

、HOSTNAMEが

+0

[Dockerfileの-hオプションのように特定のホスト名を処理する方法](https://stackoverflow.com/questions/28898787/how-to-handle-specific-hostname-like-h-option-in- dockerfile) –

+0

私はビルド後にこれをやりたい - 起動時に – madi

答えて

0

に変更されていない私は、エントリポイントスクリプトが正しいとは思いませんあなたのコンテナに名前を付ける場所は、その時点で既に作成されているためです。あなたには2つの可能性があります。このように実行時に名前を付けます。

~ 
$ docker run -it -h myContainer 3bee3060bfc8 /bin/bash 
[[email protected] /]# echo $HOSTNAME 
myContainer 
[[email protected] /]# 

-hオプションは、実行時にコンテナの名前を付けます。 この値は、ENTRYPOINTスクリプトで有効である必要があります。

また、コンテナ名をより動的に作成する場合は、ドッカーの作成ファイルに名前を付ける必要があります。あなたはCONTAINER_NAMEオプションを使用しない場合でも、ドッキングウィンドウ-COMPOSEは、私が群れを知らない-1

version: '2' 
services: 
    myService: 
    container_name: myService-$(envVariable) 

を追加しますが、それはYAMLファイルで動作するように、あなたは同様の命名オプションを取得する必要があります。

+0

dockerfileのentrypointコマンドでrun.shスクリプトを呼び出します。このshはコンテナの中に置かれます。私はこれを私が立ち上げるそれぞれのインスタンスごとに自動的に実行したいと思っています。それは何よりも、内部から行う必要があります。 – madi

+0

残念ながら、これはスウォームモードでは機能しません。 container_name 生成されたデフォルト名ではなくカスタムコンテナ名を指定してください。 container_name:my-web-container Dockerコンテナ名は一意である必要があるため、カスタム名を指定した場合は、1コンテナを超えてサービスを拡大することはできません。そうしようとするとエラーになります。 注:このオプションは、(バージョン3)のComposeファイルを使用してスタックモードでスタックをデプロイする場合は無視されます。 – madi

+0

コンテナ名とコンテナのホスト名は別のものになります。コンテナ名を設定してもホスト名は変更されません。コンテナのホスト名を変更してもコンテナ名は変更されません。 'docker service create'インターフェースには--hostnameもあり、' docker service run'の--hostnameオプションと同値です。 – programmerq

関連する問題