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 コマンドでもスクリプトでもどちらを利用しても構いません.