ElasticSearchは、Luceneをベースにした検索サーバーです。これは、RESTful Webインターフェースに基づいて、分散マルチユーザー機能を備えたフルテキスト検索エンジンを提供します。 ElasticsearchはJavaで開発され、Apacheライセンスの条件の下でオープンソースとしてリリースされています。これは人気のあるエンタープライズ検索エンジンです。 [クラウドコンピューティング](https://baike.baidu.com/item/%E4%BA%91%E8%AE%A1%E7%AE%97/9969353)で使用するように設計されており、リアルタイム検索、安定性、信頼性、高速性、インストールと使用の容易さを実現できます。
この記事では、centos7.5(CentOS-7-x86_64-Minimal-1804)システムを使用しています。
マシンに2Gメモリがあることを確認してください。 Elasticsearchは1Gのメモリを占有するためです。
yum install docker
yum install -y docker-io
国内のミラーソースを追加する必要があります
vim /etc/docker/daemon.json
デフォルトのコンテンツは{}で、変更の効果は次のとおりです。
{" registry-mirrors":["https://registry.docker-cn.com"]}
dockerサービスを再起動します
systemctl restart docker
dockerコマンド完了ツールをインストールします
yum install -y bash-completion
**注:有効にするには、ターミナルからログアウトしてから再度ログインする必要があります。 ****
docker pull centos
この鏡はcentos7です
rpmをダウンロードしてインストールします
https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.4.rpm
セントス画像でコンテナを開始します
docker run -it docker.io/centos /bin/bash
コンテナに入った後、最初にwgetとjavaをインストールし、rpmパッケージをクリーンアップします
yum install -y wget java-1.8.0-openjdk && yum clean all
Elasticsearchのrpmパッケージをダウンロードしてインストールします
rpm -ivh elasticsearch-6.2.4.rpm && rm -f elasticsearch-6.2.4.rpm
構成ファイルを変更する
sed -i '55s/#network.host: 192.168.0.1/network.host: 0.0.0.0/g'/etc/elasticsearch/elasticsearch.yml
sed -i '59s/#http.port: 9200/http.port: 9200/g'/etc/elasticsearch/elasticsearch.yml
Elasticsearchサービスを開始します
runuser -s /bin/bash -l elasticsearch -c "/usr/share/elasticsearch/bin/elasticsearch"
注:systemctlコマンドを使用してelasticsearchサービスを開始することはできません。特権モードで実行する必要があります!
たとえば、docker run -it docker.io/centosprivileged=true / bin / bash
空のディレクトリを作成し、ファイルDockerfileをコンパイルします
mkdir /opt/elasticsearchvi /opt/elasticsearch/Dockerfile
内容は以下の通りです。
FROM centos
RUN yum install -y wget java-1.8.0-openjdk && yum clean all && \
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.4.rpm && \
rpm -ivh elasticsearch-6.2.4.rpm && rm -f elasticsearch-6.2.4.rpm && \ sed -i '55s/#network.host: 192.168.0.1/network.host: 0.0.0.0/g'/etc/elasticsearch/elasticsearch.yml && \ sed -i '59s/#http.port: 9200/http.port: 9200/g'/etc/elasticsearch/elasticsearch.yml
EXPOSE 9200ENTRYPOINT runuser -s /bin/bash -l elasticsearch -c "/usr/share/elasticsearch/bin/elasticsearch"
**注:RUNが実行されるたびに、イメージは1つのレイヤーを追加します。レイヤーが多いほど、ミラーボリュームは大きくなります。 ****
複数のRUNを回避するために、関連するコマンドは1つのRUNに統合されます。
EXPOSE 9200は、公開するポート番号を示します
ENTRYPOINTは、ミラーの実行後にデフォルトで実行されるコマンドを示します
runuserは、コマンドを実行するユーザーを指定します。
docker build -t elasticsearch /opt/elasticsearch
docker run -it elasticsearch
デフォルトでは、コマンドrunuser -s / bin / bash -l elasticsearch -c "/ usr / share / elasticsearch / bin / elasticsearch"が直接呼び出されます。
出力は次のとおりです。
runuser: warning: cannot change directory to /home/elasticsearch: No such file or directory
OpenJDK 64-Bit Server VM warning: If the number of processors is expected to increase from one, then you should configure the number of parallel GC threads appropriately using -XX:ParallelGCThreads=N
[2018- 11- 07 T10:18:54,057][INFO ][o.e.n.Node ][] initializing ...[2018-11-07T10:18:54,198][INFO ][o.e.e.NodeEnvironment ][qDmU4u_] using [1] data paths, mounts [[/(rootfs)]], net usable_space [15gb], net total_space [16.9gb], types [rootfs][2018-11-07T10:18:54,198][INFO ][o.e.e.NodeEnvironment ][qDmU4u_] heap size [1015.6mb], compressed ordinary object pointers [true][2018-11-07T10:18:54,202][INFO ][o.e.n.Node ] node name [qDmU4u_] derived from node ID [qDmU4u_NTNKmpXVV-5vlEQ];set[node.name] to override
[2018- 11- 07 T10:18:54,202][INFO ][o.e.n.Node ] version[6.2.4], pid[5], build[ccec39f/2018-04-12T20:37:28.497551Z], OS[Linux/3.10.0-862.el7.x86_64/amd64], JVM[Oracle Corporation/OpenJDK 64-Bit Server VM/1.8.0_191/25.191-b12][2018-11-07T10:18:54,202][INFO ][o.e.n.Node ] JVM arguments [-Xms1g,-Xmx1g,-XX:+UseConcMarkSweepGC,-XX:CMSInitiatingOccupancyFraction=75,-XX:+UseCMSInitiatingOccupancyOnly,-XX:+AlwaysPreTouch,-Xss1m,-Djava.awt.headless=true,-Dfile.encoding=UTF-8,-Djna.nosys=true,-XX:-OmitStackTraceInFastThrow,-Dio.netty.noUnsafe=true,-Dio.netty.noKeySetOptimization=true,-Dio.netty.recycler.maxCapacityPerThread=0,-Dlog4j.shutdownHookEnabled=false,-Dlog4j2.disable.jmx=true,-Djava.io.tmpdir=/tmp/elasticsearch.C8ZXNqCd,-XX:+HeapDumpOnOutOfMemoryError,-XX:HeapDumpPath=/var/lib/elasticsearch,-XX:+PrintGCDetails,-XX:+PrintGCDateStamps,-XX:+PrintTenuringDistribution,-XX:+PrintGCApplicationStoppedTime,-Xloggc:/var/log/elasticsearch/gc.log,-XX:+UseGCLogFileRotation,-XX:NumberOfGCLogFiles=32,-XX:GCLogFileSize=64m,-Des.path.home=/usr/share/elasticsearch,-Des.path.conf=/etc/elasticsearch][2018-11-07T10:18:55,827][INFO ][o.e.p.PluginsService ][qDmU4u_] loaded module [aggs-matrix-stats][2018-11-07T10:18:55,827][INFO ][o.e.p.PluginsService ][qDmU4u_] loaded module [analysis-common][2018-11-07T10:18:55,827][INFO ][o.e.p.PluginsService ][qDmU4u_] loaded module [ingest-common][2018-11-07T10:18:55,831][INFO ][o.e.p.PluginsService ][qDmU4u_] loaded module [lang-expression][2018-11-07T10:18:55,831][INFO ][o.e.p.PluginsService ][qDmU4u_] loaded module [lang-mustache][2018-11-07T10:18:55,831][INFO ][o.e.p.PluginsService ][qDmU4u_] loaded module [lang-painless][2018-11-07T10:18:55,832][INFO ][o.e.p.PluginsService ][qDmU4u_] loaded module [mapper-extras][2018-11-07T10:18:55,832][INFO ][o.e.p.PluginsService ][qDmU4u_] loaded module [parent-join][2018-11-07T10:18:55,832][INFO ][o.e.p.PluginsService ][qDmU4u_] loaded module [percolator][2018-11-07T10:18:55,832][INFO ][o.e.p.PluginsService ][qDmU4u_] loaded module [rank-eval][2018-11-07T10:18:55,832][INFO ][o.e.p.PluginsService ][qDmU4u_] loaded module [reindex][2018-11-07T10:18:55,832][INFO ][o.e.p.PluginsService ][qDmU4u_] loaded module [repository-url][2018-11-07T10:18:55,833][INFO ][o.e.p.PluginsService ][qDmU4u_] loaded module [transport-netty4][2018-11-07T10:18:55,833][INFO ][o.e.p.PluginsService ][qDmU4u_] loaded module [tribe][2018-11-07T10:18:55,833][INFO ][o.e.p.PluginsService ][qDmU4u_] no plugins loaded
[2018- 11- 07 T10:19:00,949][INFO ][o.e.d.DiscoveryModule ][qDmU4u_] using discovery type [zen][2018-11-07T10:19:02,075][INFO ][o.e.n.Node ] initialized
[2018- 11- 07 T10:19:02,075][INFO ][o.e.n.Node ][qDmU4u_] starting ...[2018-11-07T10:19:02,531][INFO ][o.e.t.TransportService ][qDmU4u_] publish_address {172.17.0.2:9300}, bound_addresses {[::]:9300}[2018-11-07T10:19:02,567][INFO ][o.e.b.BootstrapChecks ][qDmU4u_] bound or publishing to a non-loopback address, enforcing bootstrap checks
[2018- 11- 07 T10:19:05,811][INFO ][o.e.c.s.MasterService ][qDmU4u_] zen-disco-elected-as-master([0] nodes joined), reason: new_master {qDmU4u_}{qDmU4u_NTNKmpXVV-5vlEQ}{Terj8KYoQvWwHYsUYkNNyA}{172.17.0.2}{172.17.0.2:9300}[2018-11-07T10:19:05,829][INFO ][o.e.c.s.ClusterApplierService][qDmU4u_] new_master {qDmU4u_}{qDmU4u_NTNKmpXVV-5vlEQ}{Terj8KYoQvWwHYsUYkNNyA}{172.17.0.2}{172.17.0.2:9300}, reason: apply cluster state(from master [master {qDmU4u_}{qDmU4u_NTNKmpXVV-5vlEQ}{Terj8KYoQvWwHYsUYkNNyA}{172.17.0.2}{172.17.0.2:9300} committed version [1] source [zen-disco-elected-as-master([0] nodes joined)]])[2018-11-07T10:19:05,887][INFO ][o.e.h.n.Netty4HttpServerTransport][qDmU4u_] publish_address {172.17.0.2:9200}, bound_addresses {[::]:9200}[2018-11-07T10:19:05,887][INFO ][o.e.n.Node ][qDmU4u_] started
[2018- 11- 07 T10:19:05,897][INFO ][o.e.g.GatewayService ][qDmU4u_] recovered [0] indices into cluster_state
1つの値を保持し、ポート9200を監視します
しかし、一般的に、このようにコンテナを起動するには、マシンとコンテナの間でポートマッピングを行う必要があります
docker run -p 9200:9200-d -it el
pはポートマッピングを意味し、hostPort:containerPort、左側はローカルマシン、右側はコンテナです
dはバックグラウンドで実行することを意味します
注:これらの2つのパラメーターは、背面ではなく前面に書き込む必要があります
10秒待ってポートのステータスを確認します
[ root@localhost el]# netstat -anpt
Active Internet connections(servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 000.0.0.0:220.0.0.0:* LISTEN 813/sshd
tcp 00127.0.0.1:250.0.0.0:* LISTEN 1190/master
tcp 00192.168.91.133:22192.168.91.1:56367 ESTABLISHED 11374/sshd: root@pt
tcp6 00:::9200:::* LISTEN 17942/docker-proxy- tcp6 00:::22:::* LISTEN 813/sshd
tcp6 00::1:25:::* LISTEN 1190/master
上記の情報を通して、あなたはポートアップを見ることができます
URLにアクセス
http://192.168.91.133:9200/
ページ出力:
{" name":"-sawdKe","cluster_name":"elasticsearch","cluster_uuid":"_7kUiLEyQBSnLQSOGxijtw","version":{"number":"6.2.4","build_hash":"ccec39f","build_date":"2018-04-12T20:37:28.497551Z","build_snapshot":false,"lucene_version":"7.2.1","minimum_wire_compatibility_version":"5.6.0","minimum_index_compatibility_version":"5.0.0"},"tagline":"You Know, for Search"}
備考:
コンテナを使用してelasticsearchをインストールしない場合は、次のコマンドを使用してelasticsearchを開始します。
systemctl daemon-reload
systemctl start elasticsearch.service
systemctl enable elasticsearch.service
ルートユーザーとして実行されていると考えるのは単純ではありません
/ usr / lib / systemd / system / elasticsearchファイルを見ると、実行中のユーザーがelasticsearchとして定義されています。
したがって、実際に実行しているユーザーはまだelasticsearchです
Recommended Posts