dockerに基づいてElasticsearch6.2.4(centos)を構築する

1.はじめに#

ElasticSearchは、Luceneをベースにした検索サーバーです。これは、RESTful Webインターフェースに基づいて、分散マルチユーザー機能を備えたフルテキスト検索エンジンを提供します。 ElasticsearchはJavaで開発され、Apacheライセンスの条件の下でオープンソースとしてリリースされています。これは人気のあるエンタープライズ検索エンジンです。 [クラウドコンピューティング](https://baike.baidu.com/item/%E4%BA%91%E8%AE%A1%E7%AE%97/9969353)で使用するように設計されており、リアルタイム検索、安定性、信頼性、高速性、インストールと使用の容易さを実現できます。

2、docker#をインストールします

この記事では、centos7.5(CentOS-7-x86_64-Minimal-1804)システムを使用しています。

マシンに2Gメモリがあることを確認してください。 Elasticsearchは1Gのメモリを占有するためです。

docker ##をインストールします

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です

3、elasticsearchをインストールします#

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#を書く

Dockerfile

空のディレクトリを作成し、ファイル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

注:これらの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

dockerに基づいてElasticsearch6.2.4(centos)を構築する
CentOSに基づいてDiscuzフォーラムを構築する
CentOSに基づいてWeChatアップルトサービスを構築する
CentOSに基づいてWeChatアップルトサービスを構築する
Centos7にDockerをインストールする
centos7でk8s1.9.9をビルドする
ジェンキンスはセントスに基づいて構築されています
centos6.5にDockerをインストールします
Centos7にElasticsearch6をインストールします
Centos 7(仮想ホストを含む)に基づいてNginxを構築する
CentOS7にElasticSearch7.xをインストールします
CentOSでMariaDBレプリケーションを構築する
Centos7にdockertransferをインストールします
Centosシステムにdockerをインストールします
CentOS7に基づくZabbix3.4をインストールします
centos7へのDockerEEのインストール
一般的なLinux操作(centos7に基づく)
CentOS8にElasticsearchをインストールする方法
CentOS8にElasticsearchをインストールする方法
LinuxでNginx環境を構築する(CentOS)
ubuntuに基づいてDiscuzフォーラムを構築する
CentOS7に基づいてNginxリバースプロキシを構成する
CentOS7に基づいてNginxロードバランシングを構成する
CentOS7はDockerをインストールします
CentOS7はDockerをインストールします
CentOS7ビルドジェンキンス
Centosビルドlnmp
Centos7ビルドpython3.8.5 + scrapy + gerapy
Centos7はDockerをインストールします
Centos7インストールdocker18
centos7インストールドッカー
CentOS7ドッカーのインストール
CentOS6はDockerをインストールします
Centos8はDockerをインストールします
CentOS7にElasticsearchをインストールして構成する方法
CentOS7にDockerをインストールして使用する方法
クラウドサーバーはCentOSに基づいてDiscuzフォーラムを構築します
CentOS7に基づいて自動的に起動するようにNginxを構成します
centos7.2でLAMP環境を構築する方法
RHEL 8 / CentOS8にDockerCEをインストールする方法
CentOS7.3 64ビット、ビルドZabbix3.4
CentOSビルドプライベートgit
Centos7.4はLNMPをインストールします
Linux(centos7)ビルドgitlab
Centosサーバーでgiteaをセットアップする方法を教える3分
Ubuntuにdockerをインストールする
CentOS6でOcservを構成する
Centos6.9ビルドrabbitmq3.6.8クラスター
CentOS7はDockerサービスをインストールします
Nodejsはcentos7にインストールされます
CentOS8にFFmpegをインストールします
Centosインストールelasticsearchチュートリアル
Centos7.6ビルドLNMP環境
ubuntu18.04にDockerをインストールします
CentOS7にRabbitMQをインストールします
CentosにNode.jsをインストールします
Centos7ビルドKubernetesクラスター
Mavenはcentos7にインストールします
CentOS7にMongoDBをインストールします
CentOS8.0はdockerエラーをインストールします
CentOS8にSurelogをインストールする