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. パラメータ変更に関する注意事項要約: 1. ...
目次1. 需要2. 解決策3. 最初の改善4.砂糖を加える5. 理解不能6. 問題点7. オブジェク...
HTML のセマンティクスはありふれた問題のようです。Google で検索すると、セマンティクスに関...
1. ワニスの紹介Varnish は、高性能なオープンソースのリバースプロキシサーバーおよび HTT...
1. MySQL jdbc ドライバー (mysql-connector-java-5.1.28.j...
目次序文実装のアイデア実装手順1. Nginxをコンパイルする2. 設定ファイルは以下のとおりです要...
この記事では、ブラインド効果を実現するためのjQueryの具体的なコードを参考までに紹介します。具体...
序文MySQL 8.0 の最新バージョンは 8.0.4 rc であり、正式版は近日中にリリースされる...
1. マスタースレーブレプリケーションとは何ですか?マスタースレーブレプリケーションは、スレーブデー...
目次1. デフォルトの焦点はボディにあります2. テキストボックスのフォーカスを手動で取得する3. ...
MySQL 8 の新機能: MySQL をバージョン 5.x から 8.x に直接アップグレードする...
圧縮アップロード画像、スクラッチカード、ポスター作成、チャートプラグインなど、フロントエンド開発にお...
序文この記事では、docker-compose の構成をいくつか紹介します。これらを参考にして、独自...
この記事では、Vueの具体的なコードを共有して、シンプルなマーキー効果を実現しています。具体的な内容...
この記事では、kubernetes1.5.2 から kubernetes1.10 にアップグレードす...