Docker イメージのローカル Elasticsearch ポート操作へのアクセス

Docker イメージのローカル Elasticsearch ポート操作へのアクセス

dockerスタックによってデプロイされたイメージサービスを使用すると、イメージを入力した後、理論的には、次の手順でローカルのelasticsearchサービスにアクセスできるはずです。

curl ローカル IP/9200

しかし、アクセスが拒否されたと表示されます。

その後、上記の手順を使用して確認したところ、マシンもアクセスを拒否していることがわかりました。

その後、ポート 9200 の elasticsearch サービスがリモート サーバーの elasticsearch サービスに穴を開けて接続されており、そのポートには次のコマンドでのみアクセスできることが判明しました。

カール 127.0.0.1:9200

ローカル IP アドレス経由でポート 9200 にアクセスする場合は、ホールパンチ コマンドの後に -g を追加する必要があります。

追加知識: Dockerでelasticsearchを実行すると、ポート9200にアクセスできず、コンテナは起動するとすぐに閉じられます。

docker を使用して es をインストールすると、ポート 9200 へのアクセスに失敗しました。docker ps を使用してコンテナーを表示すると、es を起動した後、一定時間後に自動的にシャットダウンすることがわかりました。仮想マシンのメモリを 4G に増やしましたが、問題は解決しませんでした。

実際、主な問題は、ES に割り当てられたメモリが小さすぎることです。

1. etc ディレクトリに入り、sysctl.conf ファイルを編集します。

vi /etc/sysctl.conf

2. 設定を追加します。

vm.max_map_count=262144

3. 実行:

sysctl -p

4. es の起動がまだ失敗する場合は、limits.conf を変更します。

vi /etc/security/limits.conf
*ソフトnofile65536
*ハードnofile 131072
* ソフト nproc 2048
* ハード nproc 4096

5. 最後に、仮想マシンを再起動し、ブラウザにアクセスします: http://192.168.162.131:9200。起動が成功したことを確認できます:

limits.confを変更せずにsysctl.confのみを変更することで成功しました。

上記のdockerイメージのローカルelasticsearchポートへのアクセス操作は、エディターが共有した内容のすべてです。参考になれば幸いです。また、123WORDPRESS.COMを応援していただければ幸いです。

以下もご興味があるかもしれません:
  • DockerコンテナはホストのMySQL操作にアクセスする
  • Docker コンテナのカスタム ホストのネットワーク アクセス操作
  • Docker ポート マッピングと外部アクセス不可の問題
  • Dockerでリモートアクセスを有効にする方法
  • DockerコンテナがJupyterにアクセスできない問題の解決策
  • Dockerモードで起動したTomcatのホームページにアクセスすると404エラーが発生する
  • 突然外部ネットワークからDockerにアクセスできなくなる問題の解決方法

<<:  初心者がHTMLタグを学ぶ(3)

>>:  MySQLの論理アーキテクチャに関する深い理解

推薦する

MySQL の null (IFNULL、COALESCE、NULLIF) に関する知識ポイントのまとめ

この記事では、MySQL の null (IFNULL、COALESCE、NULLIF) に関連する...

MySQLを5.7にアップグレードすると、WordPressはデータをインポートするときにエラー1067を報告します

最近MySQLを5.7にアップグレードしましたが、WordPressでデータのインポート時にエラーが...

JavaScript のモジュール性の説明

目次序文: 1. コンセプト2. モジュール化の利点3. 複数のスクリプトタグを導入した後の問題1....

Linux で PHP を 5.6 にアップグレードする実用的な方法

1: ターミナルに入ったらPHPのバージョンを確認する php -v出力は次のようになります。 PH...

Dockerはコンテナ外のコンテナ内でコマンドを実行します

コンテナ内でコマンドを実行したいが、コンテナに入りたくない場合があります。ではどうすればいいでしょう...

HTMLでvueとel​​ement-uiを直接参照する方法

コードは次のようになります。 <!DOCTYPE html> <html> ...

MySQL テーブルがロックされているかどうかを照会する方法

具体的な方法: (推奨チュートリアル:MySQLデータベース学習チュートリアル)テーブルロックの状態...

docker runとstartの違い

docker における実行と開始の違いDocker run はミラーイメージを指定します。そしてdo...

Windows ホストと Docker コンテナに共有フォルダを設定してマウントする手順

Docker コンテナ内のプログラムは、ホスト ディレクトリ内のデータにアクセスして呼び出す必要があ...

HTML で特定のテキストを非表示にするにはどうすればよいでしょうか?

テキスト非表示コード、HTML 内の特定のテキストを非表示にするコードをコピーコードは次のとおりです...

Centos7.6にTomcat-8.5.39をインストールする方法

Centos7.6 に Tomcat-8.5.39 をインストールする方法は次のとおりです。詳細は次...

Linux サーバー上で nvidia-docker 環境を設定するプロセスの詳細な説明

Docker はコンテナに相当し、必要な動作環境に応じて対応する動作環境を構築できます。このとき、各...

ubuntu16.04 で nginx を完全にアンインストールするための関連コマンド

nginx の概要nginx は、無料のオープンソースの高性能 HTTP サーバーおよびリバース プ...

Flexレイアウトとスケーリング計算についての簡単な説明

1. Flexレイアウトの紹介Flex は Flexible Box の略で、「柔軟なレイアウト」を...

GitHub のサードパーティ認証方式を Vue で実装する例

目次OAuth アプリの作成コードを取得するaccess_tokenを取得するユーザー情報を取得する...