Docker の使用中に、いくつかの問題が発見されました。npm install や bundle install 操作など、Docker のネットワーク リクエストは頻繁に失敗しました。または、中間層として、アプリケーションで API データを取得するプロセスでタイムアウトが発生することがよくありました。そのため、ネットワーク リクエストが遅い問題を解決するために、Docker のネットワーク メカニズムを調査し始めました。 1. Dockerネットワークモード 1. なし none として設定すると、Docker コンテナ ネットワークは入力も出力もできず、外部から分離されます。 2. ブリッジ 3. ホスト 4. コンテナ 2. Docker DNS解決 Docker コンテナは基本的に Linux なので、DNS 解決方法は Linux と同じで、/etc/hosts ファイルを見つけることが優先されます。このファイルには localhost などのドメイン名が記述されており、例えば次のようになります。 127.0.0.1 ローカルホスト Docker コンテナが他のコンテナにリンクする場合、リンクされたドメイン名が追加されます。例: docker run --name app --link app-redis:redis -d ubuntu ホストにはさらに追加される 172.17.0.3 アプリ Redis 038c8388e4a1 /etc/hosts ファイルを見つけたら、次に /etc/resolv.conf ファイルを見つけます。 ドメインローカル ネームサーバー 192.168.65.1 ネームサーバー 192.168.65.10 3. Dockerコンテナ内のネットワークリクエストが遅い問題を解決する パケットキャプチャなどの分析の結果、ネットワーク要求の遅延は主に DNS 解決で発生していることが判明したため、主に DNS 最適化が採用されました。 リクエストが独自のイントラネット API に対するものである場合は、/etc/hosts ファイルを直接変更できます。リクエストが外部ネットワークに対するものである場合は、/etc/resolv.conf でネームサーバーを変更できます。 Docker コンテナはファイルを変更することによって直接実装されるわけではありませんが、run コマンドを通じて実装できます。 # ホストを追加 docker run --name app --add-host='api.embbnux.com:10.98.10.98' -d ubuntu # DNSサーバーを指定する docker run --name app --dns=223.5.5.5 --dns=8.8.8.8 -d ubuntu このようにして、Docker コンテナ内の DNS 解決時間が短縮されます。 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: CentOS 6.4 MySQL 5.7.18 のインストールと設定方法のグラフィックチュートリアル
1 背景JDK1.8-u181とTomcat8.5.53がインストールされました。インストール後、環...
イベント委任を使用してメッセージ ボード機能を実装します。 <!DOCTYPE html>...
目次1. a タグを使用して PDF をプレビューまたはダウンロードします。書き方は、携帯電話でクリ...
MySQL では、データベースはデータ ディレクトリ内のディレクトリに対応します。データベース内の各...
今日、mysql ポートを変更したいと思ったのですが、/etc/ ディレクトリに my.cnf ファ...
MySQL のメンテナンスを容易にするために、エラー情報を収集するためのインターフェースを提供するス...
目次1. データベースを操作する1.1 データベースを作成する1.2 データベースをクエリする1.3...
この記事では、マスク レイヤーの中空化を実現する 4 つの方法を紹介します。みんなと共有し、自分用の...
1. はじめにtr はテキストの一部を変換または削除するために使用されます。 tr は transl...
以前作成されたデータベースの ogg プロセスは、発見されるまでの約半月間ダウンしていました。起動で...
目次トリガーとは何かトリガーを作成するMySQL 作成構文のキーワードの説明: 1. MySQL ト...
目次1. JavaScriptはページ内のすべてのHTML要素を変更できる1. IDでHTML要素を...
MySQL 8.0.25の最新のダウンロードとインストールのチュートリアルは参考になります。具体的な...
この記事では主に、Vue で TodoList をカプセル化するケースと、ブラウザのローカル キャッ...
MySQL ログイン パスワードを忘れた場合、解決方法は実はとても簡単です。MySQL メイン構成フ...