Dockerレジストリサービスのローカリゼーション

【レジストリ】について

  • 公式の[Dockerハブ]は、パブリックミラーを管理するのに適した場所です。必要なミラーを見つけることも、独自のミラーを押し上げることもできます。ただし、使用シナリオでは、独自のミラーを管理するためのプライベートミラーウェアハウスが必要になる場合があります。これは、オープンソースソフトウェアのレジストリを介して実現できます。
  • [レジストリ] githubには、古いコードベースと新しいコードベースの2つのコードがあります。古いコードはPythonで記述されており、プルとプッシュでパフォーマンスの問題があります。0.9.1バージョン以降は、非推奨としてマークされます(詳細を参照= " https://github.com/docker/distribution)、開発を継続しません。
  • バージョン2.0以降、新しいコードベースは新しいコードベースで開発されました。新しいコードベースはGo言語で記述され、ミラーIDの生成アルゴリズムとレジストリ上のミラーのストレージ構造が変更されます。プルおよびプッシュミラーリングの効率を大幅に最適化します。【Registry2.0】=》https://hub.docker.com/_/registry/

[レジストリは何ができますか?

  1. 画像の保存場所を厳密に制御します。
  2. 画像配信パイプラインを完全に所有します。
  3. 画像の保存と配布を社内の開発ワークフローに緊密に統合します。

注:[レジストリ]の公式ウェブサイトの紹介について=》https://docs.docker.com/registry/

 

レジストリを展開する方法は?

  • [DockerHub]からレジストリイメージをダウンロード= "dockerpullレジストリからダウンロードされるデフォルトバージョンはdocker.io/registrylatestです
  • レジストリイメージを実行してcontainer = "docker run -d -v / opt / repository:/ var / lib / repository -p 5000:5000 --restart = always --nameregistryregistry:latestを生成します[レジストリ]サービスはデフォルトでアップロードイメージはコンテナの/ var / lib / registryに保存されます。ホストの/ opt / registryディレクトリをこのディレクトリにマウントしてイメージをホストの/ opt / registryディレクトリに保存します。
  • 実行中のコンテナーを表示= "docker ps / docker container lsすべてを表示する場合は、パラメーター-aを追加します
  • レジストリコンテナが稼働している場合は、ブラウザに[http:// docker host ip:5000 / v2 /]と入力して表示します。出力が「{}」の場合は、レジストリが正常に実行されていることを意味します。

[テストレジストリ]

  • イメージをレジストリにアップロードし、最初に、ウェアハウスの要件を満たす形式でホストのレジストリイメージに名前を付けます= "[registry_url:port / ImageName:tag]
--1.先标记镜像格式
docker tag nginx:latest localhost:5000/nginx:latest

--2.把标记格式的镜像推送到registy
docker push localhost:5000/nginx:latest

--注:localhost 为本地环境的ip地址;
  • すべてのローカルミラーのリストを表示する 
docker images -a 或 docker image ls -a
  • ローカルレジストリからイメージをプルします

docker pull localhost:5000/nginx:latest

--注:localhost 为本地环境的ip地址;

この段階で、画像をプライベートウェアハウスにプッシュできないという問題が発生する可能性があります。

The push refers to a repository [localhost:5000/nginx:latest]
The https://localhsot:5000/v2/: http:server gave HTTP response to HTTPS client

 1.その理由は、ローカルで開始されたレジストリサービスが安全で信頼できないためです。

 2.解決策、クライアントドッカー構成ファイル/etc/docker/daemon.jsonを変更して、レジストリサービスアドレスを追加します

{
"registry-mirrors": [ "https://pee6w651.mirror.aliyuncs.com"],"insecure-registries": ["localhost:5000"]
}

--备注:
1.加速镜像设置 =》"registry-mirrors": ["https://pee6w651.mirror.aliyuncs.com"] 是阿里云代理的Registry Hub仓库的地址,可以加快国内访问【Registry Hub】仓库的速度;
2.私有仓库镜像设置 =》"insecure-registries": ["localhost:5000"] 是本地【Registry】服务地址,localhost 为当前 docker 主机ip;

 3. [daemon.json]ストレージパス= "cd / etc / docker

 

 4.daemon.jsonファイル構成情報の表示/編集=》 vidaemon.json

 5.終了して保存=》:wq

変更後、Dockerサービスdaemon.json構成を再起動して有効にし、command =》 systemctl restart dockerを実行し、もう一度プッシュして成功し、ローカルの/ opt / repositoryディレクトリを確認します(またはhttp:// localhost:5000 / v2と入力します) /ブラウザ内)_catalog)

  • または、次のコマンドを使用して、ローカルのプライベートウェアハウスのミラー情報を表示します
  1. curl -XGET http:// registerry:5000 / v2 / _catalog
  2. curl -XGET http:// registerry:5000 / v2 / image_name / tags / list

 

【添付:ミラーアクセラレーションアドレス】

  • Alibaba Cloud Image Accelerator =》 https://help.aliyun.com/document_detail/60750.html
  • NetEase Cloud Mirror Accelerator =》 https://hub-mirror.c.163.com
  • 公式チャイナミラーアクセラレータ=》 https://regisry.docker-cn.com
  • 科学技術大学ミラーアクセラレータ=》 https://docker.mirrors.ustc.edu.cn
  • 清華ミラーアクセラレータ=》 https://mirrors.tuna.tsinghua.edu.cn

上記の手順により、レジストリをローカルに展開するプロセスが実現しました。興味のある友人は、急いで小さなcの先生に従って、段階的に実装してください。 

おすすめ

転載: blog.csdn.net/ChaITSimpleLove/article/details/105281751