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 のインストールと設定方法のグラフィックチュートリアル
MySQLにデータを保存するとき、乱雑であまり使用されないデータがJSONフィールドに投げ込まれるこ...
目次導入使用シナリオソースコード分析要約する導入Vue は、コンポーネントをステートレスかつインスタ...
この記事では、VUEの具体的なコードを共有して、下部吸引ボタンを実装する例を紹介します。具体的な内容...
プロジェクトを開発しているとき、支払い済み、支払済み、クローズ済み、返金済みなどの注文ステータスなど...
通常は <ul><li> タグを使用しますが、dd タグと dt タグも便利...
<base> タグは、ページ上のすべてのリンクのデフォルトのアドレスまたはデフォルトのタ...
目次1. はじめに2. 解決すべきいくつかの重要な問題3.最後に書く1. はじめに最近、Cocos ...
HTMLコード: <a onclick="goMessage();" st...
ページディレクトリ構造 デフォルトの HTML テンプレート ファイル public/index.h...
目次1. はじめに2. データベースをバックアップする3. オリジナルのMysqlをアンインストール...
時は経つのが早く、わずか 6 日後には 2013 年が歴史になります。今年は、いわゆるトレンドが多す...
この記事の例では、ジグソーパズルゲームを実装するためのJavaScriptの具体的なコードを参考まで...
目次必要データを取得して送信するテンプレートフィルターフィルターの使用シナリオ要約する必要Vue を...
これが何を指しているのかをどのように判断するのでしょうか? ①グローバル環境で呼び出された場合はwi...
mysqlのリモートアクセス権を有効にするデフォルトでは、MySQL ユーザーにはリモート アクセス...