Dockerは私有倉庫を構築する。
3806 ワード
HTTPバージョン:httpバージョンは非常に簡単です。直接コマンドを実行すればいいです。
HTTPSサポート
証明書:クラウドサーバーは普通無料の証明書を提供しています。直接ダウンロードすればいいです。 は、証明書 を自ら署名することができます。
dockerサービスを作成:
アップロードミラー:
鏡像を引き出す:
もう一つの方法を調べて、nginxをインストールして転送します。httpsはnginxで構成されます。証明書ファイルも必要です。httpsの設定を確認してください。
docker run -d -p 5000:5000 --restart=always --name registry registry
httpの倉庫でミラーをアップロードするには配置が必要です。そうでないとpshは失敗します。vim /etc/docker/daemon.json
# "insecure-registries": ["your_domain:5000"]
HTTPSサポート
証明書:
mkdir certs
# domain.crt,domain.key certs
dockerサービスを作成:
# , , , registry , 。
docker run -d --restart=always --name registry -v "$(pwd)"/certs:/certs -e REGISTRY_HTTP_ADDR=0.0.0.0:443 -e REGISTRY_TLS_CERTIFICATE=/certs/domain.crt -e REGISTRY_HTTP_TLS_KEY=/certs/domain.key -p 433:433 registry:2
docker logs-f registryを使ってログを調べます。docker logs -f registry
作成時にパラメータを書き間違えたことを発見しました。まずregistryを停止する必要があります。docker container stop registry
修正後(現在のcertsディレクトリをミラーにマウント):docker run -d \
--restart=always \
--name registry \
-v "$(pwd)"/certs:/certs \
-e REGISTRY_HTTP_ADDR=0.0.0.0:443 \
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt \
-e REGISTRY_HTTP_TLS_KEY=/certs/domain.key \
-p 443:443 \
registry:2
成功したかどうかを検証します。https://your_domain/v2):、ロゴにはアクセスログが記録されます。アップロードミラー:
docker tag nginx your_domain/my-nginx
docker push your_domain/my-nginx
ここにtimeoutがありますが、アップロードに影響はありません。しばらく無視しました。ミラーを表示(アクセス:https://your_domain/v2/_catalog):鏡像を引き出す:
docker pull your_domain/my-nginx
dockerは、アクセスのためのいくつかのインターフェースを提供する。#
curl /v2/_catalog
# tag( )
curl /v2//tags/list
# API
curl -I -X DELETE "/v2//manifests/"
# digest_hash
curl /v2//manifests/ \
--header "Accept: application/vnd.docker.distribution.manifest.v2+json"
Nginnx転送の方式:もう一つの方法を調べて、nginxをインストールして転送します。httpsはnginxで構成されます。証明書ファイルも必要です。httpsの設定を確認してください。