docker pullがリセットされる問題を解決する

docker pullがリセットされる問題を解決する

この記事では、docker pull がリセットされる問題を解決する方法を紹介し、皆さんと共有します。詳細は次のとおりです。

例えば:

$ docker pull ubuntu:16.04
リポジトリ docker.io/library/ubuntu をプルしようとしています... 
https://registry-1.docker.io/v2/library/ubuntu/manifests/sha256:dd7808d8792c9841d0b460122f1acf0a2dd1f56404f8d1e56298048885e45535 を取得: https://auth.docker.io/token?scope=repository%3Alibrary%2Fubuntu%3Apull&service=registry.docker.io を取得: tcp *.*.*.*:41348->50.17.62.194:443 を読み取り: ピアによって接続がリセットされました

原因: 50.17.62.194 が TCP によってリセットされたようです。

解決:

1. 利用可能な IP を見つける:

$ dig auth.docker.io
 
; <<>> DiG 9.10.4-P6-RedHat-9.10.4-4.P6.fc25 <<>> auth.docker.io
;; グローバルオプション: +cmd
;; 回答が得られました:
;; ->>HEADER<<- オペコード: QUERY、ステータス: NOERROR、ID: 7119
;; フラグ: qr rd ra; クエリ: 1、回答: 3、権限: 0、追加: 1
 
;; OPT擬似セクション:
; EDNS: バージョン: 0、フラグ:; udp: 4096
;; 質問セクション:
;auth.docker.io. IN A
 
;; 回答セクション:
auth.docker.io. 60 IN A 34.193.147.40
auth.docker.io. 60 IN A 50.17.62.194
auth.docker.io. 60 IN A 52.5.246.212
 
;; クエリ時間: 130 ミリ秒
;; サーバー: *.*.*.*#53(.*.*.*.*)
;; 日時: 2017 年 3 月 7 日火曜日 11:03:29 CST
;; 受信したメッセージサイズ: 91

2. /etc/hosts を変更して、docker.io 関連のドメイン名を他の利用可能な IP に解決するように強制します。

# /etc/ホスト
34.193.147.40 レジストリ-1.docker.io auth.docker.io

ちなみに、画像の説明と現在利用可能な画像プロバイダーを添付してください

まず、1 つの質問を明確にする必要があります。ミラー レジストリとプライベート レジストリの違いは何ですか?

daocloudからコピーした説明:

両者の間には本質的な違いがあります。

プライベート レジストリは、開発者または企業によって構築されたイメージ リポジトリです。通常は、企業内で Docker イメージを保存するために使用され、社内の開発プロセスや製品のリリースおよびバージョン管理に使用されます。ミラーはプロキシトランジットサービスです。当社(daocloud を参照)が提供するミラーサービスは、Docker Hub の公式レジストリに直接接続します。 Docker Hub にはさまざまな種類の Docker イメージが数十万個あります。 プライベート レジストリを使用する場合、Docker Pull または Dockerfile にプライベート レジストリのアドレスを直接入力する必要がありますが、通常、これによりプライベート レジストリとのバインドが発生し、柔軟性が欠如します。 Mirror サービスを使用するには、Docker デーモン構成ファイルに Mirror パラメータを追加するだけで、公式 Docker Hub にグローバルに透過的にアクセスでき、Dockerfile イメージ参照のソースを変更する必要がなくなります。

簡単に言えば、ミラーは CDN に似ており、その本質は公式キャッシュです。プライベート レジストリはプライベート サーバーに似ており、公式とは何の関係もありません。私の場合、docker hub にイメージをドラッグしたいので、対応するものは Mirror です。 yum/apt のミラーは少し異なります。実際には、公式ライブラリ ファイル全体をミラーとして独自のサーバーにドラッグし (有用かどうかに関係なく)、公式サーバーと定期的に同期します。Docker ミラーは、使用されたイメージのみをキャッシュします。

現在、中国では docker hub にアクセスするのが非常に難しいため、docker mirror を使用することが必須です。現在サービスを提供しているのは、ustc、daocloud、aliyunの3社です。以下で順に紹介していきます。

選択肢ゼロ: NetEase 163 Docker イメージ

$ sudo echo "DOCKER_OPTS=\"\$DOCKER_OPTS --registry-mirror=http://hub-mirror.c.163.com\"" >> /etc/default/docker
$ サービスdockerを再起動します

一般的に言えば、NetEase の豚肉は市販の豚肉よりも美味しいです。

オプション 1: ustc ミラー

ustc は、長年にわたり利用されてきた Linux ミラー サービス プロバイダーであり、Ubuntu 5.04 バージョンから使用されています。以前のブログで、ustc docker リポジトリ イメージを使用できることを説明しました。使用方法については、ustc docker イメージの使用ヘルプを参照してください。

ustc の docker イメージは速度が速く、使用していて満足しています。しかし、今日はそれが機能しないことがわかりました。おそらくこの事件に関連しているのでしょう。今日、Ubuntu をプルしようとしましたが、非常に遅かったです。Docker Hub から直接プルする必要があり、基本的に加速効果はありませんでした。

ustc docker ミラーの利点の 1 つは、登録が不要でパブリック サービスであることです (これは私がよく知っている ustc です)。

オプション2: daocloud

DaoCloud も Docker アクセラレータを提供していますが、ustc とは異なり、ユーザーは使用前に登録する必要があり、トラフィックは月あたり 10 GB に制限されています。 Linux での使用は比較的簡単で、1 つのコマンドで実行できます。

curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://{your_id}.m.daocloud.io

実際の変更は /usr/lib/systemd/system/docker.service で、–registry-mirror パラメータが追加されます。

ExecStart=/usr/bin/docker-current デーモン --registry-mirror=http://{your_id}.m.daocloud.io\

設定後、設定を再読み込みして再起動する必要があります。

systemctl docker を有効にする; systemctl daemon-reload; systemctl docker を再起動する

しかし!今日、DaoCloud の Docker アクセラレータを使用して非常に悪い経験をしました。加速効果をほとんど感じることができなかったので、断固として諦めました。

オプション3: alicloud

Alibaba Cloud も Docker アクセラレータを提供していますが、ustc よりも面倒です。Alibaba Cloud ユーザーとして登録するだけでなく、開発者プラットフォームに参加する必要があります。しかし、昨晩これらすべてを終えた後、私はサービスが非常に良好で、プル速度が基本的に 1MB/秒であることに気づきました (私が杭州にいることも一因です)。設定方法はdaocloudと同様で、アクセラレータを起動するとURLが付与されます。

/usr/lib/systemd/system/docker.service を直接変更しました:

ExecStart=/usr/bin/docker-currentデーモン --registry-mirror=https://{your_id}.mirror.aliyuncs.com\

設定を再読み込みして再起動します:

systemctl docker を有効にする; systemctl daemon-reload; systemctl docker を再起動する

pull すると、やはり docker.io が表示されますが、速度が全く docker.io になりません。

# docker pull ubuntu
デフォルトタグの使用: 最新
リポジトリ docker.io/library/ubuntu をプルしようとしています...
最新: docker.io/library/ubuntu からプル
cad964aed91d: プル完了
3a80a22fea63: プル完了
50de990d7957: プル完了
61e032b8f2cb: プル完了
9f03ce1741bf: プル完了
ダイジェスト: sha256:28d4c5234db8d5a634d5e621c363d900f8f241240ee0a6a978784c978fe9c737
ステータス: docker.io/ubuntu:latest の新しいイメージをダウンロードしました

まとめると、aliyun docker mirror には多少の不便さはあるものの、確かに現時点では最高のサービスです。もちろん、USTC が正常に戻ったら、USTC に切り替えます。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

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

<<:  MAC 上の MySQL の初期パスワードを忘れた場合の対処方法

>>:  vue3 watch と watchEffect の使い方と違い

推薦する

Linux に MySQL 8.0.x をインストールするための完全な手順

マイグレーションMySQL 入門MySQL はもともとオープンソースのリレーショナル データベース管...

DockerでLNMPアーキテクチャを展開する方法

環境要件: IPホスト名192.168.1.1ノード1プロジェクト計画:コンテナネットワークセグメン...

MySQL 8.0 の非表示インデックスの詳細な説明

言葉MySQL 8.0 は最初のバージョンから 4 年を経てリリースされました。バージョン 8.0 ...

Reactは二次的連鎖効果(階段効果)を実現する

この記事では、二次リンク効果を実現するためのReactの具体的なコードを参考までに共有します。具体的...

SSMは、mysqlデータベースアカウントのパスワード暗号文ログイン機能を実装します。

導入当社は、情報セキュリティと機密アプリケーションに関わるいくつかのプロジェクトの研究開発に従事して...

HTMLは実際にはいくつかの重要なタグを学ぶアプリケーションです

「これは革命になるだろう」という記事が出たあと。業界の皆様に認知され、もちろん内外からの評価もいただ...

Nginx+Tomcat 負荷分散クラスタのインストールと構成のケースの詳細な説明

目次序文1. Nginx+Tomcat 2. Nginxサーバーを構成する3. Tomcatアプリケ...

CSS3 レーダースキャンマップのサンプルコード

CSS3 を使用して、クールなレーダースキャン画像を実現します。 コード上で直接: // インデック...

Docker で MySQL を起動したときに SQL 文を自動的に実行する方法

Docker で MySQL コンテナを作成する場合、コンテナの起動後にデータベースとテーブルが自動...

MySQL 8.0.13 のインストールと設定のグラフィックチュートリアル

Msyqlデータベースのインストール、参考までに具体的な内容は次のとおりです。 ①ブラウザでhttp...

HTML ウェブページのメタビューポート属性の説明

HTML メタビューポート属性の説明ビューポートとはモバイル ブラウザは、Web ページを仮想の「ウ...

JavaScript は 9 グリッドのクリックによる色の変更効果を実装します

この記事では、9グリッドクリックの色変更効果を実現するためのJavaScriptの具体的なコードを参...

DockerとVMwareの競合を解決する

1. Dockerの起動の問題:問題は解決しました: Hyper-V をオンにする必要があります (...

Dockerはnextcloudを使用してプライベートBaiduクラウドディスクを構築します

突然、ドキュメントの保存と共同作業のためのプライベート サービスを構築する必要がありました。多くの場...

Vue でルートをジャンプする方法をご存知ですか?

目次最初の方法: router-link (宣言型ルーティング) 2番目の方法: router.pu...