神戸学院大学 経営学部 林坂ゼミ

Docker 入門トップページ

« 戻る 次へ »

Docker 入門

Elasticsearch で全文検索を実行する(macOS版)

起動と終了

インストールが完了したので,Elasticsearch の起動や終了方法を確認しておきましょう.なお,macOS にインストールした場合は,起動 (start.sh),停止 (stop.sh),アンインストール (uninstall.sh) というスクリプトが準備されているので,これらを実行するだけです.あるいは Docker のコマンドを用いて起動,停止などの処理を行うことも可能です.

目次に戻る

スクリプトによる起動と終了

まず,動作状態を確認します.2つのコンテナが動作しています.

elastic-start-local % docker container ls ⏎
CONTAINER ID   IMAGE                                         COMMAND                   CREATED      STATUS                    PORTS                      NAMES
54207647059f   docker.elastic.co/kibana/kibana:9.2.1-arm64   "/bin/tini -- /usr/l…"   3 days ago   Up 11 minutes (healthy)   127.0.0.1:5601->5601/tcp   kibana-local-dev
64da5c780379   elastic-start-local-elasticsearch             "/bin/tini -- /usr/l…"   3 days ago   Up 11 minutes (healthy)   127.0.0.1:9200->9200/tcp   es-local-dev
elastic-start-local %

API キーで作成できることをここで確認しておきます.なお API キーは .env ファイルに記載された内容に置き換えてください.

elastic-start-local % curl -H "Authorization: ApiKey Q25EX3RKb0I3SzJUQjVKNm8xQXQ6OXcxT3phdlhVV1BIeEhVZXh1clJMZw==" "http://localhost:9200/" ⏎
{
  "name" : "64da5c780379",
  "cluster_name" : "docker-cluster",
  "cluster_uuid" : "__iGUnK-TFq8FlqdBwpWYg",
  "version" : {
    "number" : "9.2.1",
    "build_flavor" : "default",
    "build_type" : "docker",
    "build_hash" : "4ad0ef0e98a2e72fafbd79a19fa5cae2f026117d",
    "build_date" : "2025-11-06T22:07:39.673130621Z",
    "build_snapshot" : false,
    "lucene_version" : "10.3.1",
    "minimum_wire_compatibility_version" : "8.19.0",
    "minimum_index_compatibility_version" : "8.0.0"
  },
  "tagline" : "You Know, for Search"
}
elastic-start-local %

macOS にここで利用したコマンドでインストールすると,停止や起動,アンインストールのスクリプトも準備されています.動作しているコンテナをすべて停止するには stop.sh スクリプトを実行します.

elastic-start-local % ./stop.sh ⏎
[+] Stopping 3/3
 ✔ Container kibana-local-dev       Stoppe...                              1.0s
 ✔ Container kibana-local-settings  S...                                   0.0s
 ✔ Container es-local-dev           Stopped                                2.6s
elastic-start-local %

コンテナを停止できたことは次のコマンドで確認できます.

elastic-start-local % docker container ls -a ⏎
CONTAINER ID   IMAGE                                                       COMMAND                   CREATED      STATUS                        PORTS     NAMES
54207647059f   docker.elastic.co/kibana/kibana:9.2.1-arm64                 "/bin/tini -- /usr/l…"   3 days ago   Exited (0) 28 seconds ago               kibana-local-dev
336ee861a68b   docker.elastic.co/elasticsearch/elasticsearch:9.2.1-arm64   "/bin/tini -- /usr/l…"   3 days ago   Exited (0) 12 minutes ago               kibana-local-settings
64da5c780379   elastic-start-local-elasticsearch                           "/bin/tini -- /usr/l…"   3 days ago   Exited (143) 26 seconds ago             es-local-dev
elastic-start-local %

コンテナを停止したのでもちろん繋がらないはずです.

elastic-start-local % curl -H "Authorization: ApiKey Q25EX3RKb0I3SzJUQjVKNm8xQXQ6OXcxT3phdlhVV1BIeEhVZXh1clJMZw==" "http://localhost:9200/" ⏎
curl: (7) Failed to connect to localhost port 9200 after 0 ms: Could not connect to server
elastic-start-local %

コンテナを起動するには start.sh スクリプトを動作させます.

elastic-start-local % ./start.sh ⏎
[+] Running 3/3
 ✔ Container es-local-dev           Healthy                               21.9s
 ✔ Container kibana-local-settings  E...                                   1.2s
 ✔ Container kibana-local-dev       Health...                             23.1s
elastic-start-local %

コンテナが起動できたことを確認します.

elastic-start-local % docker container ls ⏎
CONTAINER ID   IMAGE                                         COMMAND                   CREATED      STATUS                        PORTS                      NAMES
54207647059f   docker.elastic.co/kibana/kibana:9.2.1-arm64   "/bin/tini -- /usr/l…"   3 days ago   Up 44 seconds (healthy)       127.0.0.1:5601->5601/tcp   kibana-local-dev
64da5c780379   elastic-start-local-elasticsearch             "/bin/tini -- /usr/l…"   3 days ago   Up About a minute (healthy)   127.0.0.1:9200->9200/tcp   es-local-dev
elastic-start-local %

API キーを利用してアクセスできることを確認します.

elastic-start-local % curl -H "Authorization: ApiKey Q25EX3RKb0I3SzJUQjVKNm8xQXQ6OXcxT3phdlhVV1BIeEhVZXh1clJMZw==" "http://localhost:9200/" ⏎
{
  "name" : "64da5c780379",
  "cluster_name" : "docker-cluster",
  "cluster_uuid" : "__iGUnK-TFq8FlqdBwpWYg",
  "version" : {
    "number" : "9.2.1",
    "build_flavor" : "default",
    "build_type" : "docker",
    "build_hash" : "4ad0ef0e98a2e72fafbd79a19fa5cae2f026117d",
    "build_date" : "2025-11-06T22:07:39.673130621Z",
    "build_snapshot" : false,
    "lucene_version" : "10.3.1",
    "minimum_wire_compatibility_version" : "8.19.0",
    "minimum_index_compatibility_version" : "8.0.0"
  },
  "tagline" : "You Know, for Search"
}
elastic-start-local %

もう一度スクリプトで停止させてみます.

elastic-start-local % ./stop.sh ⏎
[+] Stopping 3/3
 ✔ Container kibana-local-dev       Stoppe...                              0.7s
 ✔ Container kibana-local-settings  S...                                   0.0s
 ✔ Container es-local-dev           Stopped                                2.4s
elastic-start-local %

目次に戻る

Docker コマンドによる起動と終了

上で説明したようなスクリプトでの起動・終了だけでなく,Docker のコマンドを用いて起動,終了などの処理を行うことも可能です.Elasticserch の設計は docker-compose.yml に記載されていることから,docker compose up コマンドでコンテナを起動できます.このとき -d オプションを付けておくとバックグラウンドでデーモンとして起動できます.

elastic-start-local % docker compose up -d ⏎
[+] Running 3/3
 ✔ Container es-local-dev           Healthy                               20.6s
 ✔ Container kibana-local-settings  E...                                   0.6s
 ✔ Container kibana-local-dev       Starte...                              0.1s
elastic-start-local %

コンテナの起動状態を確認します.

elastic-start-local % docker container ls ⏎
CONTAINER ID   IMAGE                                         COMMAND                   CREATED      STATUS                             PORTS                      NAMES
54207647059f   docker.elastic.co/kibana/kibana:9.2.1-arm64   "/bin/tini -- /usr/l…"   3 days ago   Up 11 seconds (health: starting)   127.0.0.1:5601->5601/tcp   kibana-local-dev
64da5c780379   elastic-start-local-elasticsearch             "/bin/tini -- /usr/l…"   3 days ago   Up 33 seconds (healthy)            127.0.0.1:9200->9200/tcp   es-local-dev
elastic-start-local %

コンテナの起動ができたら動作を確認します.

elastic-start-local % curl -H "Authorization: ApiKey Q25EX3RKb0I3SzJUQjVKNm8xQXQ6OXcxT3phdlhVV1BIeEhVZXh1clJMZw==" "http://localhost:9200/" ⏎
{
  "name" : "64da5c780379",
  "cluster_name" : "docker-cluster",
  "cluster_uuid" : "__iGUnK-TFq8FlqdBwpWYg",
  "version" : {
    "number" : "9.2.1",
    "build_flavor" : "default",
    "build_type" : "docker",
    "build_hash" : "4ad0ef0e98a2e72fafbd79a19fa5cae2f026117d",
    "build_date" : "2025-11-06T22:07:39.673130621Z",
    "build_snapshot" : false,
    "lucene_version" : "10.3.1",
    "minimum_wire_compatibility_version" : "8.19.0",
    "minimum_index_compatibility_version" : "8.0.0"
  },
  "tagline" : "You Know, for Search"
}
elastic-start-local %

コンテナを停止するには docker compose stop コマンドを実行します.一方で docker compose down ではコンテナを停止すると共に破棄まで行います.

elastic-start-local % docker compose stop ⏎
[+] Stopping 3/3
 ✔ Container kibana-local-dev       Stoppe...                              1.1s
 ✔ Container kibana-local-settings  S...                                   0.0s
 ✔ Container es-local-dev           Stopped                                2.4s
elastic-start-local %

結局のところ,起動や終了は Docker コマンドでもスクリプトでもどちらを利用しても構いません.

目次に戻る