プライベートウェアハウスを構築するための docker レジストリ
準備
- centos に基づくホスト (192.168.65.128) とプライベート ウェアハウス サーバーとしてインストールされた Docker 環境
- centos とインストールされた Docker 環境に基づくホスト (192.168.65.130) は、プライベート ウェアハウス サーバーのイメージの送信とプルをテストするためのテスト マシンとして使用されます。
正式に建てられた
プライベート倉庫サーバー (192.168.65.128)
-
ミラーレジストリをダウンロードする
docker pull registry
-
レジストリを実行する
docker run -itd -v /data/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry:latest
パラメータの説明:
- -itd: 対話型操作のためにコンテナ内で疑似端末を開き、バックグラウンドで実行します。
- -v: データの永続性を実現するために、ホストの /data/registry ディレクトリをコンテナの /var/lib/registry ディレクトリ (このディレクトリはレジストリ コンテナ内のミラー ファイルが保存されるディレクトリです) にバインドします。
- -p: ポート マッピング。ホスト マシンのポート 5000 にアクセスすると、レジストリ コンテナのサービスにアクセスします。
- –restart=always: これは再起動戦略です。コンテナが異常終了した場合、コンテナは自動的に再起動されます。
- –name registry: registry という名前のコンテナを作成します。任意の名前を付けることができます。
- registry:latest: これは今プルされたイメージです。
-
プライベート ウェアハウス内のすべての画像を表示します (現時点ではウェアハウスにミラー イメージがないため、結果は空になります)
curl http://127.0.0.1:5000/v2/_catalog
利用可能なデータ:
{“リポジトリ”:[]}
テストマシン(192.169.65.130)
-
プライベートストレージサーバーアドレスを追加
vim /etc/docker/daemon.json
{ "registry-mirrors": [ "https://registry.docker-cn.com"], "insecure-registries": [ "192.168.65.128:5000"] }
パラメータの説明
insecure_registries: プライベート ウェアハウス サーバーのアドレスは次のとおりです。
Dockerサービスを再起動します
systemctl restart docker
画像をプライベートウェアハウスサーバー (192.168.65.128) にアップロードします。
-
hello-world イメージをプルします (このイメージは docker Hub イメージです)
docker pull hello-world
-
hello-world イメージにラベルを付ける
docker tag hello-world:latest 192.168.65.128:5000/hello:v1
形式は次のとおりです。
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
パラメータの説明:
- SOURCE_IMAGE --> ハローワールド
- [:TAG] --> 最新
- TARGET_IMAGE --> 192.168.65.128:5000/こんにちは
- [:TAG] --> v1
知らせ:
192.168.65.128:5000/hello は、プライベート ウェアハウス サーバーのアドレス (192.168.65.128) に、サーバーにアップロードする画像の名前を加えたものです (この名前は選択できます)。
-
イメージ hello:v1 をプライベート ウェアハウス サーバー (192.168.65.128) にアップロードします。
docker push 192.168.65.128:5000/hello:v1
-
プライベート ウェアハウス サーバー (192.168.65.128) に hello:v1 イメージがすでに存在するかどうかを確認します。
curl http://127.0.0.1:5000/v2/_catalog
答えが得られました:
{“リポジトリ”:[“こんにちは”]}
プライベート ウェアハウス サーバー (192.168.65.128) からイメージをプルします。
-
テスト マシン (192.168.65.130) 上の hello:v1 イメージを削除します。
docker rmi 192.168.65.128:5000/hello:v1
-
プライベートウェアハウスサーバー (192.168.65.128) 上のイメージをプルします。
docker pull 192.168.65.128:5000/hello:v1