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 のインストールと設定方法のグラフィックチュートリアル
この記事の例では、ページング機能を実装するためのVueの具体的なコードを参考までに共有しています。具...
背景ご存知のとおり、nginx は高性能な Web サーバーであり、負荷分散やリバース プロキシによ...
<br />少し前に、ビジネス上の必要性から、ラップトップに Souba をインストール...
この記事では、CSS ::markerの興味深い疑似要素を紹介します。これを使用すると、テキスト番号...
この記事では、例を使用して、MySQL で複数のトリガー操作を作成する方法について説明します。ご参考...
この記事では、参考までにMySQL 8.0.13のインストールグラフィックチュートリアルを紹介します...
NFS とは何ですか?ネットワークファイルシステムネットワーク上でファイルを保存および整理するための...
dl:定義一覧定義リストdt:定義タイトルタイトルを定義するdd:定義説明定義の説明dt は情報のタ...
1. SVNサーバーをインストールする yum でサブバージョンをインストール2. SVNバージョン...
フロントエンドとバックエンドがやり取りする場合、get または delete を介してバックエンドに...
先ほど、Docker を使用して SpringBoot プロジェクトを簡単にデプロイし、Docker...
目次概要(ループモード - 共通)配列と非同期メソッドを宣言して反復するforループで使用するマップ...
前面に書かれた環境: MySQL 5.7+、MySQL データベースの文字エンコードは utf8、テ...
<br />ナビゲーション設計は構造設計における主要なタスクの 1 つです。ソフトウェア...
1. getBoundingClientRect() 分析getBoundingClientRect...