Docker プルタイムアウトの解決策

Docker プルタイムアウトの解決策

最近、Docker イメージのプルが非常に不安定です。遅く、タイムアウトすることがよくあります。

xlxdsj_swagger_ui (swaggerapi/swagger-ui:) をプルしています...
最新: swaggerapi/swagger-ui からプル
ba3557a56b15: プル完了
1a18b9f93d41: プル完了
38ceab6c6432: プル完了
6104f3bd82cc: プル完了
750e0e12d70c: プル完了
d7c38a871210: プル完了
cbd9bbb7c3b7: プル完了
3d6723371070: プル完了
5e5b2de4487f: プル完了
3c84c9c2d567: プル完了
9e7d57b00bb8: プル完了
5356d2f5be08: プル完了
ダイジェスト: sha256:2a746f15dacc2f2e381b3449544b82e6c7604567f05606d957ff5b7cf7d29a47
ステータス: swaggerapi/swagger-ui:latest の新しいイメージをダウンロードしました
xlxdsj_swagger_editor (swaggerapi/swagger-editor:) をプルしています...
エラー: Get https://registry-1.docker.io/v2/: net/http: 接続待機中にリクエストがキャンセルされました (ヘッダー待機中に Client.Timeout を超えました)

一般的な解決策は 3 つあります。

1. DNSを変更する

2. イメージリポジトリのアドレスを変更する

3. ホストを変更する

socks5プロキシの使用

以下の操作はすべてCentOS7で、Ubuntuも基本的に同じで、macOSとWindowsも同じ原理です

DNSを変更する

>>> vim /etc/resolv.conf
ネームサーバー 8.8.8.8

イメージリポジトリのアドレスを変更する

>>> vim /etc/docker/daemon.json
{
 "レジストリミラー": ["https://docker.mirrors.ustc.edu.cn", "https://reg-mirror.qiniu.com"]
}
>>> systemctlデーモンリロード
>>> systemctl dockerを再起動します

ホストの変更

# digをインストールする
>>> sudo yum インストールbind-utils
>>> @114.114.114.114 レジストリ-1.docker.io を掘る
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.3 <<>> @114.114.114.114 レジストリ-1.docker.io
; (1 台のサーバーが見つかりました)
;; グローバルオプション: +cmd
;; 回答が得られました:
;; ->>HEADER<<- オペコード: QUERY、ステータス: NOERROR、ID: 18733
;; フラグ: qr rd ra; クエリ: 1、回答: 8、権限: 0、追加: 1
;; OPT擬似セクション:
; EDNS: バージョン: 0、フラグ:; udp: 512
;; 質問セクション:
;registry-1.docker.io. IN A
;; 回答セクション:
レジストリ-1.docker.io. 38 IN A 54.85.56.253
レジストリ-1.docker.io. 38 IN A 35.174.73.84
レジストリ-1.docker.io. 38 IN A 23.22.155.84
レジストリ-1.docker.io. 38 IN A 18.213.137.78
レジストリ-1.docker.io. 38 IN A 107.23.149.57
レジストリ-1.docker.io. 38 IN A 52.5.11.128
レジストリ-1.docker.io. 38 IN A 52.54.232.21
レジストリ-1.docker.io. 38 IN A 52.20.56.50
;; クエリ時間: 8 ミリ秒
;; サーバー: 114.114.114.114#53(114.114.114.114)
;; 日時: 2021 年 2 月 23 日火曜日 09:03:18 CST
;; 受信したメッセージサイズ: 177
>>> sudo vim /etc/hosts
35.174.73.84 レジストリ-1.docker.io

socks5プロキシの使用

これまでの方法がうまくいかない場合は、これを試してください

前提として、SSがインストールされている必要があります

>>> vim /etc/systemd/system/docker.service.d/http-proxy.conf
[サービス]
環境="HTTP_PROXY=socks5://127.0.0.1:1080"
>>> systemctlデーモンリロード
>>> systemctl dockerを再起動します
>>> systemctl show --property=環境 docker
環境=HTTP_PROXY=socks5://127.0.0.1:1080

補足:docker pull imageエラーやタイムアウトの解決方法、pullアドレスを国内イメージウェアハウスに変更する

Docker のデフォルトのイメージ プル アドレスは外部ウェアハウスであるため、ダウンロード速度が遅く、このエラーが報告されることもあります。

デーモンからのエラー応答: Get https://docker.elastic.co/v2/: net/http: TLS ハンドシェイク タイムアウト

解決策: /etc/docker/daemon.json ファイルを変更し、registry-mirrors キー値を追加します。

次にDockerを再起動します。

{
 "レジストリミラー": ["https://registry.docker-cn.com"]
}

上記は私の個人的な経験です。参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。間違いや不備な点がありましたら、遠慮なくご指摘ください。

以下もご興味があるかもしれません:
  • docker によってプルされたイメージがどこに保存されるかの詳細な説明
  • Docker イメージのプルとタグ操作 pull | tag
  • Docker 構成 Alibaba Cloud イメージアクセラレーション プル実装
  • docker によってプルされたイメージがどこに保存されるかの詳細な説明
  • docker pullがリセットされる問題を解決する
  • docker イメージのプル速度が遅い問題の解決策
  • docker イメージのプル速度が遅い問題を解決する方法
  • docker によってプルされたイメージファイルが保存される場所の詳細な説明
  • docker pullイメージソースを変更する方法の詳細な説明

<<:  CSS変数var()の使い方を理解する必要があります

>>:  VUEはタイムライン再生コンポーネントを実装します

推薦する

SpringBoot でマイクロサービスを構築するために Docker を使用した実際の記録を分析する

それは何ですか? Spring Boot は、Spring オープンソース組織のサブプロジェクトであ...

ランダム点呼 Web ページを実装するための JavaScript

JavaScriptは、参考のためにランダムな点呼Webページを作成します。具体的な内容は次のとお...

ノードスクリプトで自動サインインと抽選機能を実現

目次1. はじめに2. 準備3. スクリプトプロジェクトの構築4. コードの作成と実行5. まとめと...

Apache Flink の任意の Jar パッケージのアップロードにより、リモート コード実行の脆弱性が再発する問題が発生する (脆弱性警告)

脆弱性の説明Apache Flink は、分散ストリームおよびバッチ データ処理用のオープン ソース...

Vue の共通 A​​PI と高度な API の概要

目次次のチェックミックスイン$強制更新設定、削除フィルター指令その他の単純な共通プロパティとメソッド...

要素の属性を削除する JS removeAttribute() メソッド

JavaScript では、要素の removeAttribute() メソッドを使用して、指定され...

vue+element-uiはヘッドナビゲーションバーコンポーネントを実装します

この記事では、vue+element-uiでヘッドナビゲーションバーコンポーネントを実装するための具...

vuex データの永続化のための 2 つの実装ソリューション

目次ビジネス要件:解決策 1: vuex-persistedstate解決策2: vuex-pers...

固定テーブル幅テーブルレイアウト: 固定

テーブルを画面全体(残りの空白領域)に表示するために、幅属性は 100% と定義されることが多く、セ...

Nginx設定ファイルの詳細な説明

Nginx の主な設定ファイルは nginx.conf で、グローバル ブロック、イベント ブロック...

CentOS 6.9 で glibc ダイナミック ライブラリをアップグレードする詳細なプロセス

glibc は、gnu によってリリースされた libc ライブラリ、つまり c ランタイム ライブ...

MySQLとElasticsearch間のデータ非対称性問題の解決策

MySQLとElasticsearch間のデータ非対称性問題の解決策jdbc-input-plugi...

HTML で dl(dt,dd)、ul(li)、ol(li) を使用する方法

HTML <dl> タグ#定義と使用法<dl> タグは定義リストを定義します...

JavaScript を使用して div の位置をドラッグして入れ替える例

1 実施原則これは、DOM 要素の dragstart/ondragover/ondrop イベント...

Linux サーバーのステータスとパフォーマンスに関連するコマンドの詳細な説明

サーバーステータス分析Linux サーバーの CPU の詳細を表示する#CPU情報を表示[root@...