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. 説明2. インストール3. テスト1. 説明Vue Router は、Vue.js の公式...
自分のウェブサイトを構築する予定なので、618 プロモーションを利用して Tencent Cloud...
序文Linux には Windows のような目立つごみ箱がないため、簡単に復元することはできません...
1. MySQL 5.6をインストールした後、正常に有効化できないMySQL の圧縮バージョンは、解...
1. 対照的な色を使用します。ここでのコントラストとは、テキストの色と背景色のコントラストを指します...
CSS ビューポート ユニットはここ数年登場しており、時が経つにつれて、ますます多くの開発者が使用し...
1. MySQL 8.0.20をダウンロードして解凍するダウンロードリンク: https://dev...
公式チュートリアルに従って、インストール パッケージをダウンロードし、[インストール] をクリックし...
SQL (Structured Query Language) ステートメント、つまり構造化クエリ言...
SASS を使用する開発者が増えるにつれて、SASS コードの数に注意する必要があります。 SASS...
この記事では、参考までに、NFC読み取り機能を実装するためのuni-appの具体的なコードを紹介しま...
色はウェブサイト訪問者に影響を与えますか?数年前までは、ウェブサイトはまだ贅沢品でしたが、今ではほと...
オブジェクト上にマウスを移動したときにコンテンツ(タイトル属性の内容)を折り返す方法、HTML タイ...
この記事では、参考までにVue More Filter Itemウィジェットの実装方法を例として紹介...
1. Dockerの紹介1.1 仮想化1.1.1 仮想化とは何ですか?コンピュータにおける仮想化とは...