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パラメータの具体的な使用法

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

推薦する

MySQL 5.7.25 のインストールと設定方法のグラフィックチュートリアル

MySQL インストール ファイルには、msi 形式と zip 形式の 2 種類があります。クリック...

Nginx 最適化サービスで Web ページ圧縮を実装する方法

リソースを節約するためにWebページの圧縮を設定する1.まず、設定を変更しましょう vim /usr...

MySQLでSQLクエリ文がどのように実行されるかを分析する

目次1. MySQL論理アーキテクチャの概要2. コネクタクエリキャッシュ4. パーサー5. オプテ...

Docker を使用して Go Web アプリケーションをデプロイする方法

目次なぜ Docker が必要なのでしょうか? Docker デプロイメントの例コードの準備Dock...

HTML におけるベースタグの使用に関する詳細な説明

requireJS には、baseURL というプロパティがあります。baseURL を設定すること...

dockerにros2をインストールするための詳細な手順

目次メイントピック1. UbuntuにDockerをインストールする2. DockerにROS2-F...

年末ですが、MySQL パスワードは安全ですか?

序文:年末です。データベースを検査する時期ではないでしょうか?一般的に、検査では、パスワードの複雑さ...

Vue3.0はドロップダウンメニューのカプセル化を実装します

Vue3.0 がリリースされてからしばらく経ちましたが、勉強を始める必要があります。まず、達成したい...

WeChat ミニプログラム 宝くじ番号ジェネレーター

この記事では、WeChatアプレットの宝くじ番号ジェネレータの具体的なコードを参考までに紹介します。...

Linux NFSメカニズムの動作原理と例の分析

NFS とは何ですか?ネットワークファイルシステムネットワーク上でファイルを保存および整理するための...

Linux bzip2 コマンドの使用

1. コマンドの紹介bzip2 は、ファイルの圧縮と解凍に使用されます。これは、Linux システム...

MySQL Shell import_tableデータインポートの実装

目次1. import_tableの紹介2. データのロードとテーブル関数のインポートの例2.1 L...

JavaScript ファクトリーパターンの説明

目次シンプルファクトリーファクトリーメソッド安全な工場方法アブストラクトファクトリー要約するシンプル...

入力ボックスのプレースホルダーテキストのデフォルトの色を変更する -webkit-input-placeholder メソッド

HTML5 では、入力用のネイティブ プレースホルダー属性が追加されており、これは高度なブラウザでサ...

Windows Server のインストール後にワイヤレスとオーディオが機能しない問題を解決する

1. ワイヤレスPowerShell を実行し、次のコマンドを入力します。 install-wind...