仕事の都合で、ローカルのDockerプロキシキャッシュを自分でホストする必要があります。港docker login
そこで、ドキュメントを参照してサーバーをインストールし、適切に構成し、FQDN 経由でアクセスし、自己署名証明書を使用しました。外部クライアントからdocker pull
問題なく使用できます。
私のアイデアは、このハーバーサーバーをコンテナ私が所有する k3s クラスター内で実行されているサービス。クラスターのコントロール プレーン (ホスト名: control01) からイメージをプルできます。
/usr/local/bin/ctr -a /run/k3s/containerd/containerd.sock image pull
harbor.virtalus.com/dockerhubproxy/library/ubuntu:20.04
harbor.virtalus.com/dockerhubproxy/library/ubuntu:20.04: resolved |++++++++++++++++++++++++++++++++++++++|
index-sha256:4e9ed8dc49c4c21888f4053e59d7ef0959f57e77d0fbe47ba0063fddd6b70f2c: done |++++++++++++++++++++++++++++++++++++++|
manifest-sha256:7b3e30a1f373b0621681f13b92feb928129c1c38977481ee788a793fcae64fb9: exists |++++++++++++++++++++++++++++++++++++++|
layer-sha256:8e5c1b329fe39c318c0d49821b339fb94a215c5dc0a2898c8030b5a4d091bcba: exists |++++++++++++++++++++++++++++++++++++++|
config-sha256:1a437e363abfa47bfe4b3f5906b7444d12346102d944ebddd537e47a62fc6f52: exists |++++++++++++++++++++++++++++++++++++++|
elapsed: 10.3s total: 1.4 Ki (137.0 B/s)
unpacking linux/amd64 sha256:4e9ed8dc49c4c21888f4053e59d7ef0959f57e77d0fbe47ba0063fddd6b70f2c...
そこで私は/etc/rancher/k3s/registries.yaml
次のように設定しますRancherによる公式ドキュメント:
cat << EOF > /etc/rancher/k3s/registries.yaml
mirrors:
"*":
endpoint:
- "https://harbor.virtalus.com"
configs:
"https://harbor.virtalus.com":
auth:
username: admin
password: Harbor12345
tls:
cert_file: /root/harbor.virtalus.com.cert
key_file: /root/harbor.virtalus.com.key
ca_file: /root/ca.crt
insecure_skip_verify: true
EOF
セクションありとなしで試してみましたconfig
が、次のメッセージが表示され続けます:
pulling from host harbor.virtalus.com failed with status code [manifests 1.8.6]: 401 Unauthorized
私はこれに過去 4 時間を費やし、いくつかの github の問題スレッド、公式ドキュメント、およびいくつかのトラブルシューティング ガイドを読みましたが、まだ何が間違っているのかわかりません。
答え1
エントリconfigs
にはセクションauth
とセクションが含まれていますが、レジストリエントリが重複して配置されているため、セクションが考慮されていないようtls
です。tls
cat << EOF > /etc/rancher/k3s/registries.yaml
mirrors:
"*":
endpoint:
- "https://harbor.virtalus.com"
configs:
"https://harbor.virtalus.com":
auth:
username: admin
password: Harbor12345
「https://harbor.virtalus.com」:
tls:
cert_file: /root/harbor.virtalus.com.cert
key_file: /root/harbor.virtalus.com.key
ca_file: /root/ca.crt
insecure_skip_verify: true
EOF
削除して問題が解決するかどうかお知らせください。
さらに、発生したエラーの詳細を取得するには、--debug
フラグを使用することをお勧めします。docker