Dockerコンテナ上のElasticSearchにアクセスする方法

Docker
ユウ
ユウ

タイトルの方法を忘備録がてらメモしておきます

前提

Dockerコンテナ上でElasticSearchが起動しているのは前提とします。

まだ起動できていない場合は以下のサイトなどを参考に起動します。

Docker
elasticsearch | Docker @ Elastic

ポートの確認

ElasticSearchのコンテナのポートがホストのどのポートに接続されているのか確認します。

ポートの確認はdocker psコマンドでできますが、以下のようにすると必要な情報(コンテナ名とポート)のみ表示できます:

% docker ps --format "table {{.Names}}\t{{.Ports}}"
NAMES                       PORTS
{elasticsearchコンテナの名前}  9300/tcp, 0.0.0.0:9600->9600/tcp, 0.0.0.0:9201->9200/tcp

PORTSの部分を見ると、0.0.0.0:9600->9600/tcp, 0.0.0.0:9201->9200/tcpとなっています。これより以下のようにポート番号がわかります:

9201, 9600:ホストのポート番号

9200, 9600:コンテナのポート番号

上記のホストのポート番号にアクセスすればElasticSearchにアクセスできます。

ElasticSearchはホストの2つのポート(9201, 9600)で起動していますが、以下では9201にアクセスする場合を説明します。

ElasticSearchにアクセス

indexの確認

curl -XGET '0.0.0.0:9201/_cat/indices?v'

特定indexの設定を確認

curl --include -XGET "0.0.0.0:9201/{IndexName}/_settings?pretty"

ドキュメントの取得

全ドキュメント

curl -XGET '0.0.0.0:9201/{indexName}/_search?pretty'

キーワードで絞り込み

curl -X GET "0.0.0.0:9201/{IndexName}/_search
<クエリDSL>

# 例
curl -X GET "0.0.0.0:9201/sample_index/_search?pretty" -H 'Content-Type: application/json' -d'
{
  "query": {
    "match" : {
			"title": "AI"
		}
	},
	"_source": ["id", "title"] # 特定のフィールドを取得したい場合は_sourceを指定する
}
'

参考

初めてのElasticsearch with Docker - Qiita
はじめにElasticsearchの公式チュートリアルやってみました。公式ドキュメント以外にも色々調べながら進めたのですが、「7.0系(type新規作成廃止後)」×「Docker」の記事が少なか…
【Elasticsearch】よく使うコマンド一覧 - Qiita
#Elasticsearchコマンド一覧よく使うコマンドをメモしておく。##目次Elasticsearch関連インデックス関連エイリアス関連ドキュメントタイプ関連ReIndexAPI…

プロフィール
この記事を書いた人

30代半ばで未経験でプログラマーに転職し、日々奮闘中です
プログラミング、AI、NLP、キャリア関連などで少しでも役に立てる情報を発信していきます

ユウをフォローする
DockerElasticSearch
ユウをフォローする

コメント

タイトルとURLをコピーしました