問題現象:
考えられる原因の分析:Linux は date を使用して現在の時刻を確認し、それを証明書の有効期間と比較して具体的な理由を取得します。具体的な理由は次の 2 つのいずれかです。 1. このマシンの時刻は間違っています。 2. レジストリの証明書の有効期限が切れている。 解決:1. このマシンの時刻は間違っています。現地時間を変更するだけ 2. レジストリの証明書の有効期限が切れている。レジストリの SSL セキュリティ例外を作成し、レジストリ サーバー証明書の有効性チェックを放棄しますが、これにはセキュリティ上のリスクがあります。 安全でないレジストリが有効になっている場合、Docker は次の手順で https への接続を試みます。 まず HTTPS を使用してみてください。 HTTPS 接続にアクセスできるが証明書が利用できない場合は、証明書エラーを無視します。 HTTPS 接続が利用できない場合は、HTTP が使用されます。 CentOS /etc/docker/ ディレクトリにデーモン構成ファイル daemon.json を作成し、ターゲット レジストリの IP アドレス セグメントまたは特定のサービス ドメイン名とポート番号を json ファイルに書き込みます。 たとえば、サーバーが配置されているネットワーク セグメントが 10.0.0.0/8 の場合、コンテンツは次のようになります。 { "安全でないレジストリ" : ["10.0.0.0/8"] } 次に示すように、ドメイン名とポート番号を組み合わせて使用することもできます。 { "安全でないレジストリ" : ["myregistrydomain.com:5000"] } Windows の場合は、C:\ProgramData\docker\config\daemon.json ファイルを変更します。形式は Linux の場合と同じです。 docker サービスを再起動します。 有効かどうかを確認し、Insecure Registries フィールドに注意してください。 [root@localhost ~]# docker 情報 docker情報: コンテナ: 0 ランニング: 0 一時停止: 0 停止: 0 画像: 2 サーバーバージョン: 17.05.0-ce ストレージ ドライバー: オーバーレイ バックアップファイルシステム: xfs d_type をサポート: true ログドライバー: json-file cgroup ドライバー: cgroupfs プラグイン: ボリューム: ローカル ネットワーク: ブリッジ ホスト macvlan null オーバーレイ 群れ: 非アクティブ ランタイム: runc デフォルトのランタイム: runc 初期化バイナリ: docker-init コンテナバージョン: 9048e5e50717ea4497b757314bad98ea3763c145 runc バージョン: 9c2d8d184e5da67c95d601382adf14862e4f2228 初期化バージョン: 949e6fa セキュリティ オプション: seccomp プロフィール: デフォルト カーネルバージョン: 3.10.0-693.el7.x86_64 オペレーティング システム: CentOS Linux 7 (コア) OSタイプ: Linux アーキテクチャ: x86_64 CPU: 24 合計メモリ: 62.74 GiB 名前: localhost.localdomain ID: 755F:OEFV:VP3S:BMGQ:VUFW:WGT5:YQHO:EW6T:AAVE:NHS2:TPV3:SBTJ Docker ルートディレクトリ: /var/lib/docker デバッグモード(クライアント): false デバッグモード(サーバー): false レジストリ: https://index.docker.io/v1/ 実験的: 偽 安全でないレジストリ: 10.0.0.0/8 127.0.0.0/8 ライブリストアが有効: false サーバー証明書の有効期限を確認する方法Firefoxを例に挙げましょう 補足: Docker プライベートリポジトリ内の期限切れの自己署名証明書を置き換える Dockerレジストリ証明書の置き換えイメージをプルするときに次のエラーが報告されます: k8s@master:~/shiyu$ docker pull reg.netlab.com/tensorflow-cpu デフォルトタグの使用: 最新 デーモンからのエラー応答: Get https://reg.netlab.com/v2/: x509: 証明書の有効期限が切れているか、まだ有効ではありません /etc/docker/certs 内の証明書の有効期限が切れていないか確認するroot@master:~# openssl x509 -in /etc/docker/certs.d/reg.netlab.com/reg.netlab.com.crt -noout -dates notBefore=2019年4月1日 13:21:22 GMT notAfter=2020年3月31日 13:21:22 GMT どうやら、自己署名証明書は2020年3月31日に期限切れになったようです。 新しい証明書に再署名するキーと秘密鍵を保存するための~/certsフォルダを作成します mkdir -p ~/certs キーを生成する cd ~/certs openssl genrsa -out reg.netlab.com.key 2048 キーファイルの生成 openssl req -newkey rsa:4096 -nodes -sha256 -keyout reg.netlab.com.key -x509 -days 365 -out reg.netlab.com.crt 関連情報を入力してください 国名(2文字コード)[XX]:CN # 国名 州または省名(フルネーム)[]:guangdong # 省 地域名 (例: 市) [デフォルトの市]:guagnzhou # 市 組織名 (例: 会社) [デフォルトの会社 Ltd]:sysu # 組織単位名 (例: セクション) []:netlab # 共通名 (例: 自分の名前またはサーバーのホスト名) []:reg.netlab.com # メールアドレス []:[email protected] この時点で、証明書の自己署名は完了です。 証明書をDockerルート証明書に追加し、Dockerを再起動します。注意: 自己署名証明書であるため、デフォルトでは Docker によって信頼されないため、証明書を Docker のルート証明書に追加する必要があります。CentOS 7/Ubuntu 18 では、証明書の保存パスは /etc/docker/certs.d/ドメイン名です。 証明書をDockerルート証明書に追加する mkdir -p /etc/docker/certs.d/reg.netlab.com cp ~/certs/reg.netlab.com.crt /etc/docker/certs.d/reg.netlab.com/ Dockerを再起動する systemctl dockerを再起動します Docker レジストリ コンテナ内の期限切れの証明書を置き換える レジストリコンテナIDを表示する k8s@master:~$ docker ps |grep レジストリ 3eb5eda4b75e registry.docker-cn.com/library/registry:2 "/entrypoint.sh /etc…" 13 か月前 44 分前 0.0.0.0:443->5000/tcp レジストリ b84ea71a572f f32a97de94e1 "/entrypoint.sh /etc…" 13 か月前 約 1 時間前 0.0.0.0:5000->5000/tcp registry_mirror IDに応じてrigstryのマウントパスを表示します k8s@マスター:~$ docker 検査 3eb5eda4b75e ... 「バインド」: [ "/root/certs:/certs", 「/home/レジストリ:/var/lib/レジストリ」 ] ... 新しく生成された証明書を/root/certs:/certsディレクトリにコピーします。 ルート@マスター:~/certs#ll 総投与量 16 drwxr-xr-x 2 ルート ルート 4096 2019年4月1日 ./ drwx------ 8 ルート ルート 4096 5月 2日 14:06 ../ -rw-r--r-- 1 ルート ルート 2126 2019年4月1日 reg.netlab.com.crt -rw------ 1 ルート ルート 3272 2019年4月1日 reg.netlab.com.key レジストリコンテナを再起動する k8s@master:~$ systemctl dockerを再起動します この時点で、自己署名証明書が更新されました。 テストk8s@master:~/shiyu$ docker pull reg.netlab.com/tensorflow-cpu デフォルトタグの使用: 最新 最新: tensorflow-cpu から取得 ダイジェスト: sha256:68da50778a5f80e0676c4ca617299444fc71677a2d83cacccaf7a08d08cc1df6 ステータス: reg.netlab.com/tensorflow-cpu:latest のイメージは最新です 上記は私の個人的な経験です。参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。間違いや不備な点がありましたら、遠慮なくご指摘ください。 以下もご興味があるかもしれません:
|
<<: MySQL mysqladmin クライアントの使用の概要
インストールパス: /application/mysql-5.5.56 1. 事前準備MySQL 依...
機能: 前のページまたは次のページにジャンプします。要素: ページングの基本要素は、前のページ + ...
現代の Web ビジュアル デザインは、初期の情報の積み重ねから、その後のグラフィックスと抽象化、そ...
目次1. 親コンポーネントと子コンポーネント2. テンプレート分離書き込み1. テンプレートタグ2....
MySQL 5.7.18 が正常にインストールされた後、バージョン 5.7 では空のパスワードでのロ...
序文PIPE、パイプラインと翻訳されます。 Angular パイプは、HTML コンポーネントで宣言...
目次1. スローログの紹介2. スローログの練習1. スローログの紹介スロー ログの正式名称はスロー...
今回はレイアウトを中心に学習しますが、これは基本的なHTMLタグのほとんどにも存在するため、比較的簡...
この記事では、タイムライン効果を実現するためのvue+swiperの具体的なコードを参考までに共有し...
厳密に言えば、nginx には負荷分散バックエンド ノードのヘルス チェック機能はありませんが、デフ...
負荷分散の概要Nginx の負荷分散実装を紹介する前に、負荷分散の分類について簡単に説明します。負荷...
CSS プロパティのブラウザ互換性をまとめる必要があるのはなぜですか?使用する際は、Can I U...
私のマシン環境: Windows 2008 R2 MySQL 5.6 Baidu で「Windows...
最近Kafka勉強しています。クラスタの状態をテストする準備をしていたときに、仮想マシンを 3 つ開...
パッシブチェックパッシブ ヘルス チェックでは、NGINX と NGINX Plus はイベントの発...