Dockerイメージ_FILE環境変数を使用して公式のInfluxDBを拡張して、Dockerの秘密と互換性があります
この画像は、親画像のドキュメントで説明されているとおりに動作します。唯一の違いは、すべてのパスワード環境変数に、対応するPassword_file環境変数があることです。これは、既に設定されていない場合、親の値を読み取るためのファイルを決定するために使用されることです。
以下の親の画像の説明。
InfluxDBは、高い書き込みとクエリの負荷を処理するために、ゼロから構築された時系列データベースです。 InfluxDBは、DevOpsの監視、アプリケーションメトリック、IoTセンサーデータ、リアルタイム分析など、大量のタイムスタンプデータを含むあらゆるユースケースのバッキングストアとして使用することを目的としています。
InfloxDBドキュメント
InfluxDBイメージは、 /var/lib/influxdb
の下で共有ボリュームを公開するため、ホストディレクトリをそのポイントにマウントして、持続的なコンテナデータにアクセスできます。コンテナの典型的な呼び出しは次のとおりです。
$ docker run -p 8086:8086
-v $PWD:/var/lib/influxdb
influxdb
InfluxDBコンテナに関連付けられたデータを保存するディレクトリに$PWD
変更します。
また、名前付きボリュームを使用して、ボリュームマウントポイントをDocker制御することもできます。
$ docker run -p 8086:8086
-v influxdb:/var/lib/influxdb
influxdb
次のポートは重要であり、InfluxDBで使用されます。
docker run -P
を使用すると、HTTP APIポートが自動的に公開されます。
docker run -P
使用する場合、管理者インターフェイスは自動的に公開されず、デフォルトでは無効になります。 Adminstratorインターフェイスでは、WebブラウザーがWebブラウザーと同じコンテナ内のポートのInfluxDBにアクセスできることが必要です。 -P
ランダムポートでHTTPポートをホストに公開するため、管理者インターフェイスはこの設定と互換性がありません。
管理者インターフェイスは1.1.0の時点で非推奨で、1.3.0で削除されます。
APIエンドポイントとポートの詳細については、こちらをご覧ください。
InfluxDBは、構成ファイルから構成するか、環境変数を使用して構成できます。構成ファイルをマウントしてサーバーで使用するには、このコマンドを使用できます。
デフォルトの構成ファイルを生成します:
$ docker run --rm influxdb influxd config > influxdb.conf
デフォルトの構成を変更します。これは、 $PWD
で利用可能になります。次に、InfluxDBコンテナを起動します。
$ docker run -p 8086:8086
-v $PWD/influxdb.conf:/etc/influxdb/influxdb.conf:ro
influxdb -config /etc/influxdb/influxdb.conf
構成ファイルを保存するディレクトリに$PWD
変更します。
環境変数の場合、形式はINFLUXDB_$SECTION_$NAME
です。すべてのダッシュ( -
)はアンダースコア( _
)に置き換えられます。変数がセクションにない場合は、その部分を省略します。
例:
INFLUXDB_REPORTING_DISABLED=true
INFLUXDB_META_DIR=/path/to/metadir
INFLUXDB_DATA_QUERY_LOG_ENABLED=false
InfluxDBの構成の詳細については、こちらをご覧ください
InfluxDBはグラファイトラインプロトコルをサポートしますが、サービスとポートはデフォルトでは公開されません。 Graphiteサポートを有効にしてInfloxDBを実行するには、構成ファイルを使用するか、適切な環境変数を設定できます。デフォルトのグラファイト構成を使用してInfluxDBを実行します。
docker run -p 8086:8086 -p 2003:2003
-e INFLUXDB_GRAPHITE_ENABLED=true
influxdb
グラファイトサービスをセットアップする詳細なドキュメントについては、GitHubのReadmeを参照してください。グラファイトテンプレートを利用するには、上記の手順を使用してデフォルトの構成ファイルを出力し、 [[graphite]]
セクションを変更して、構成ファイルを使用する必要があります。
管理者インターフェイスは1.1.0の時点で非推奨で、1.3.0で削除されます。デフォルトでは無効になっています。必要に応じて、以下のように環境変数を設定することで有効にすることができます。
docker run -p 8086:8086 -p 8083:8083
-e INFLUXDB_ADMIN_ENABLED=true
influxdb
管理者インターフェイスを使用するには、HTTP APIと管理者インターフェイスAPIの両方を同じポートに転送する必要があります。
mydbという名前のdbを作成する:
$ curl -G http://localhost:8086/query --data-urlencode " q=CREATE DATABASE mydb "
DBへの挿入:
$ curl -i -XPOST ' http://localhost:8086/write?db=mydb ' --data-binary ' cpu_load_short,host=server01,region=us-west value=0.64 1434055562000000000 '
これについては、公式ドキュメントで詳細をご覧ください
コンテナを起動します:
$ docker run --name=influxdb -d -p 8086:8086 influxdb
Influxクライアントを別のコンテナで実行します:
$ docker run --rm --link=influxdb -it influxdb influx -host influxdb
現時点では、 docker exec
TTYを適切に割り当てないため、 docker exec
を使用してInfluxクライアントを実行することはできません。これは、Docker/Docker#8755に詳述されているDockerの現在のバグによるものです。
InfluxDB画像には、データベースを初期化するための追加の機能が含まれています。これらのオプションは、生産には提案されていませんが、テスト用のスタンドアロンインスタンスを実行する場合に非常に便利です。
データベースの初期化スクリプトはinfluxd
しているときにのみ呼び出されます。他のプログラムを実行しても実行されません。
InfluxDB画像は、いくつかの環境変数を使用して、サーバーの特定の部分を自動的に構成します。彼らはあなたがこの画像の使用に大幅に役立つかもしれません。
この環境変数の名前でデータベースを自動的に初期化します。
認証を有効にします。これを設定するか、 auth-enabled = true
設定する必要があります。
作成される管理者ユーザーの名前。これが設定されていない場合、管理者ユーザーは作成されません。
INFLUXDB_ADMIN_USER
で構成された管理者ユーザーのパスワード。これが設定されていない場合、ランダムなパスワードが生成され、標準のために印刷されます。
特権なしで作成されるユーザーの名前。 INFLUXDB_DB
が設定されている場合、このユーザーはそのデータベースの読み取りおよび書き込み許可が付与されます。
INFLUXDB_USER
で構成されたユーザーのパスワード。これが設定されていない場合、ランダムなパスワードが生成され、標準のために印刷されます。
INFLUXDB_DB
の読み取り特権で作成されるユーザーの名前。 INFLUXDB_DB
が設定されていない場合、このユーザーには許可が付与されません。
INFLUXDB_READ_USER
で構成されたユーザーのパスワード。これが設定されていない場合、ランダムなパスワードが生成され、標準のために印刷されます。
INFLUXDB_DB
の書き込み特権で作成されるユーザーの名前。 INFLUXDB_DB
が設定されていない場合、このユーザーには許可が付与されません。
INFLUXDB_WRITE_USER
で構成されたユーザーのパスワード。これが設定されていない場合、ランダムなパスワードが生成され、標準のために印刷されます。
Docker画像が、 /docker-entrypoint-initdb.d
フォルダー内に拡張機能.sh
または.iql
を備えたファイルを見つけた場合、それらを実行します。それらが実行される順序は、シェルによって決定されます。これは通常、アルファベット順です。
データベースと終了を手動で初期化するために、 /init-influxdb.sh
スクリプトを直接使用できます。 influxd run
コマンドと同じパラメーターを取得します。例として:
$ docker run --rm
-e INFLUXDB_DB=db0 -e INFLUXDB_ADMIN_ENABLED=true
-e INFLUXDB_ADMIN_USER=admin -e INFLUXDB_ADMIN_USER=supersecretpassword
-e INFLUXDB_USER=telegraf -e INFLUXDB_USER_PASSWORD=secretpassword
-v $PWD:/var/lib/influxdb
/init-influxdb.sh
上記は、データベースdb0
を作成し、パスワードsupersecretpassword
を使用して管理者ユーザーを作成し、Telegrafの秘密パスワードでtelegraf
ユーザーを作成します。その後、出発して、マウントしたボリュームで作成したファイルを残します。
influxdb
画像には多くのフレーバーがあり、それぞれが特定のユースケース用に設計されています。
influxdb:<version>
これがfactoイメージです。自分のニーズが何であるかわからない場合は、おそらくこれを使用したいと思うでしょう。スローアウェイコンテナとして使用するように設計されています(ソースコードをマウントしてコンテナを起動してアプリを起動する)、および他の画像を構築するベースです。
influxdb:alpine
この画像は、人気のあるAlpine Linuxプロジェクトに基づいており、 alpine
公式画像で入手できます。 Alpine Linuxは、ほとんどの分布ベース画像(〜5MB)よりもはるかに小さいため、一般的にはるかにスリムな画像につながります。
このバリアントは、最終的な画像サイズが可能な限り小さくなる場合に強くお勧めします。注意すべき主な注意事項は、GLIBCや友人の代わりにMUSL LIBCを使用しているため、LIBC要件の深さに応じて特定のソフトウェアが問題に直面する可能性があることです。ただし、ほとんどのソフトウェアにはこれに問題がないため、通常、このバリアントは非常に安全な選択です。このハッカーのニュースコメントスレッドを参照して、発生する可能性のある問題と、高山ベースの画像を使用することのいくつかのPRO/CON比較について詳しく説明してください。
画像のサイズを最小限に抑えるために、追加の関連するツール( git
やbash
など)がAlpineベースの画像に含まれることは珍しいことです。この画像をベースとして使用して、必要なものを独自のDockerFileに追加します(馴染みがない場合はパッケージをインストールする方法については、 alpine
Imageの説明を参照してください)。
この画像に含まれるソフトウェアのライセンス情報を表示します。
すべてのDocker画像と同様に、これらには、他のライセンス(BASHなどなどのBASHなど、封じ込められているプライマリソフトウェアの直接的または間接的な依存関係)の下にある可能性のある他のソフトウェアも含まれている可能性があります。
自動検出できる追加のライセンス情報は、 repo-info
リポジトリのinfluxdb/
ディレクトリにある場合があります。
事前に構築された画像の使用に関しては、この画像の使用が内部に含まれるすべてのソフトウェアに関連するライセンスに準拠することを保証することが画像ユーザーの責任です。