はじめに
前提
- Windows 21H2
- WSL2
- Ubuntu 22.04.1 LTS
- Docker Engine v20.10.21
現状
- 研究でElasticsearchを使ったシステムを構築している
- 比較実験のためシステムのバージョンが複数存在する
- バージョンごとにElasticsearchに使用するDocumentも異なる
- indexによるバージョン間の分離はしたくない
問題
- RDBにおけるテーブルのような役割をElasticsearchで再現したい
解決案
- Elasticsearch内でうまくドキュメントが被らないような設定をする
- Dockerでバージョンごとのコンテナを管理する
1について調べたものの、答えを得られなかったため、2で解決する。
具体的な1の方法ご存知の方いらっしゃったら教えてください。
1. Docker Desktop をインストール
Docker Desktopをインストールする。設定は以下の画像の通り。
参考: WSL 2 での Docker リモート コンテナーの概要
2. Docker Desktop に Elasticsearch 環境を構築
Docker Desktopを連携したディストリビューションのbashで以下のコマンドを実行する。
- インポートするElasticsearchのバージョンは任意のものを選ぶ
-
--name
でコンテナ名を指定できる
(sudo) docker pull docker.elastic.co/elasticsearch/elasticsearch:7.17.7
(sudo) docker run --name "sample-es" -p 127.0.0.1:9200:9200 -p 127.0.0.1:9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.17.7
参考: Install Elasticsearch with Docker
3. コンテナの追加
2の2つ目のコマンドを繰り返すことで、コンテナを追加できる。
まとめ
- 複数バージョンの辞書をDockerのGUIで管理できて楽