Dockerはelasticsearchイメージを起動し、ディレクトリをマウントした後にエラーを解決します

Dockerはelasticsearchイメージを起動し、ディレクトリをマウントした後にエラーを解決します

docker hub から es イメージ (バージョン 6.4.2) をダウンロードしました。詳細は次のとおりです。

より重要なのは、次の 2 つです。1 つ目は作業ディレクトリであり、マウント ディレクトリもこれに対応している必要があります。2 つ目は、事前に記述された起動スクリプトが指定される起動コマンドです。そこで、空のコンテナを起動して、内部で何が起こっているかを確認しました。

コンテナ内のディレクトリ構造は上記の通りです。data はデータの保存に使用され、logs はログの保存に使用されます。

次に、起動スクリプトを確認します

ローカルディレクトリの docker-entrypoint.sh

前半については、あまり理解できていませんが、最後の部分は、マウント ディレクトリに関係しています。マウント ディレクトリ以降の操作を扱っており、おおよそ次のようになります。

ルート ユーザーの場合 (docker がコンテナーを起動します。デフォルトでは、コンテナーはルート ユーザーとして起動されます)、TAKE_FILE_OWNERSHIP 変数が存在する場合は、2 つのディレクトリ /usr/share/elasticsearch/{data,logs} をユーザー 1000 に属するように変更します (ここで、最終的なデータ ストレージ パスが data であることもわかるため、data の下にマウントする必要があります)。

ID 1000 のユーザー:

elasticsearch ユーザーなので、ディレクトリをマウントしなければそのままコンテナを起動できます。マウントしたら変数を追加して任意の値を割り当てると正常に起動できます。

docker run -itd -v /root/es-data/:/usr/share/elasticsearch/data -e TAKE_FILE_OWNERSHIP=111 -p 9200:9200 --name es elasticsearch:6.4.2

補足知識: elasticsearch の docker インストールと遭遇した落とし穴を記録する

まずコマンドラインを与える

docker run -d -p 9200:9200 -p 9300:9300 -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" --name=<ES 名> elasticsearch:<ES バージョン>

このコマンドを使用して、es dockerイメージコンテナを直接インストールして実行します。

質問

起動するには、コマンド docker run -d -p 9200:9200 -p 9300:9300 --name=<your es name> elasticsearch:<es version> を使用します。起動しているかどうかを確認するには、docker ps コマンドを使用して以下を検索します。

es は起動しませんでした。

そこで、docker ps -a コマンドを再度使用しました。

起動が終了したことがわかりました。

次に、docker logs -f <コンテナ ID> コマンドを使用して、es 起動ログを表示します。

一番下までスクロールします:

次のようになります:

電源管理:

メモリ: 4k ページ、物理 1882892k (空き 89076k)、スワップ 0k (空き 0k)

vm_info: linux-amd64 JRE (1.8.0_181-8u181-b13-2~deb9u1-b13) 用の OpenJDK 64 ビット サーバー VM (25.181-b13)、2018 年 10 月 22 日 18:05:23 に「pbuilder」によって gcc 6.3.0 20170516 でビルドされました

時刻: 2018年11月23日金曜日 07:00:34
経過時間: 0 秒 (0d 0h 0m 0s)

そこでエラーメッセージをコピーして Google で検索し、問題を見つけました。 elasticsearch5.+ のデフォルトのメモリ構成は 2g です。 docker に 2g のメモリしか割り当てなかったので、GG でした。

古いコンテナと古いイメージを削除した後、docker起動コマンドに-e "ES_JAVA_OPTS=-Xms512m -Xmx512m"を追加して問題を解決します。

docker ps:

最後に、ポート 9200 にアクセスします。

オレンジ

Docker で elasticsearch イメージを起動し、ディレクトリをマウントした後に発生するエラーを解決する方法に関する上記の記事は、私が皆さんと共有したいことのすべてです。これが皆さんの参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • JDKバージョンの問題によりElasticsearchが起動に失敗する問題を解決する
  • DockerがElasticsearch7.xを起動してエラーを報告する問題を解決する
  • Docker が elasticsearch を起動するときのメモリ不足の問題と解決策
  • elasticsearch 起動時の警告: JVM メモリをロックできません
  • Elasticsearch は guice を通じてノードアセンブリの起動プロセスを挿入します

<<:  MySQL binlog_ignore_dbパラメータの具体的な使用法

>>:  登録フォームのデザインルール

推薦する

フレックスボックスレイアウトの最終行の左揃えの実装アイデア

フレックスレイアウトを使用すると、9つの正方形のグリッドであれば、図に示すように均等に分割できます。...

CSS でリスト スタイル属性を設定する方法 (この記事を読むだけ)

リストスタイルのプロパティHTMLには、順序なしリストと順序ありリストの2種類のリストがあります。仕...

vue3.0 プロジェクトを素早く構築するための手順を完了する

目次1. 3.0をより適切にサポートするには、vue/cliのバージョンが4.5.0以上であることを...

よくあるNginxの設定ミスの例

目次ルートの場所が見つかりませんオフバイスラッシュ安全でない変数の使用スクリプト名$uri を使用す...

MySQL ファジークエリステートメントコレクション

SQL ファジークエリステートメント一般的なファジーステートメントの構文は次のとおりです。 SELE...

IE ブラウザの HTML ハック タグの概要

コードをコピーコードは次のとおりです。 <!--[if !IE]><!-->...

jQuery はシャッター効果を実現します (li 配置を使用)

この記事では、ブラインド効果を実現するためのjQueryの具体的なコードを参考までに紹介します。具体...

nginx で正規表現を使用してワイルドカードドメイン名を自動的に一致させる方法

Nginxは正規表現を使用して、ワイルドカードドメイン名をディレクトリに自動的に一致させます。 Ng...

MySQL データベースの最適化に関する 9 つのヒント

目次1. 最も適切なフィールド属性を選択する2. フィールドをNOT NULLに設定してみる3. サ...

vue-router からのフロントエンドルーティングの 2 つの実装

目次モードパラメータハッシュ履歴ハッシュ履歴.push()ハッシュ履歴.replace()アドレスバ...

本番環境でのMySQLパラメータsql_safe_updatesの使用に関する詳細な説明

序文アプリケーションのバグや DBA の誤操作が発生した場合、テーブル全体が更新される可能性がありま...

phpmyadmin を使用して MySQL 権限を設定する方法

目次ステップ 1: root ユーザーとしてログインします。ステップ 2: 新しいデータ テーブルを...

MySQLの日付と時刻関数の使用の概要

この記事はMySQL 8.0に基づいていますこの記事では、日付と時刻の操作のための MySQL 関数...

div が iframe に覆われるいくつかの状況とその解決策

類似の構造:コードをコピーコードは次のとおりです。 <div></div>&...