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はタイムライン再生コンポーネントを実装します

推薦する

JavaScriptは双方向リンクリストプロセス分析を実装します

目次1. 二重連結リストとは何か2. 双方向リンクリストのカプセル化3. 双方向リンクリストの一般的...

Mysql ALTER TABLE はフィールドを追加するときにテーブルをロックしますか?

目次MySQL 5.6以前MySQL 5.6以降要約する知らせMySQL 5.6以前更新手順元のテー...

ウェブページの読み込み速度を上げる25の方法とヒント

はじめに<br />誰もが高速インターネット接続にアクセスできるわけではありません。たと...

表のセル間隔とセルパディングの違いの詳細な説明

テーブルとは何ですか?セルセルで構成されています。表では、<td> の数は、<tr...

VMwareのCentosシステムでNavicatがMySQLサーバーに接続できない問題を解決します

ホスト 'xxxx' はこの MySQL サーバーに接続できませんエラー: 1130...

Dockerコンテナを介してランプアーキテクチャを構築するプロセス

目次1. Centosイメージを取得する2. nginxイメージをビルドする3. MySQLイメージ...

Windows Server 2019 IIS10.0+PHP(FastCGI)+MySQL 環境構築チュートリアル

準備1. 環境の説明:オペレーティング システム: Windows Server 2019 PHP ...

JSはビデオの再生速度を制御するための簡単なサンプルコードを実装します

導入以前、ある問題に気づきました。学習ビデオを視聴しているとき、動きが遅すぎる、先生が黒板に書くのに...

Vueのv-onパラメータの問題についてお話しましょう

Vue での v-on:clock の使用現在、vue.js フレームワークを学習しています。後で参...

Docker Consul の概要とクラスター環境構築手順(グラフィカルな説明)

目次1. Dockerコンサルの概要2. nginxとconsulをベースにした自動検出と高可用性の...

Linux ディスクデバイスと LVM 管理コマンドの詳細な例

序文Linux オペレーティング システムでは、デバイス ファイルは特別なタイプのファイルです。これ...

MySQL 8.0.15 バージョンのインストールチュートリアル Navicat.list への接続

落とし穴1. ネット上の多くのチュートリアルでは環境変数を設定するファイル名はmy.iniと書いてあ...

docker tagとdocker pushの使い方の詳しい説明

Dockerタグの詳しい説明docker tag コマンドの使い方と、ローカルイメージを daocl...

ウェブページの要素の検査とソースコードの表示の違いについて

Chrome ブラウザで Web ページを開くと、ページを右クリックすると 2 つの非常によく似たオ...

MySQL の準同期レプリケーションについての簡単な説明

導入MySQL はレプリケーションを通じてストレージ システムの高可用性を実現します。現在、MySQ...