Dockerは私有倉庫を構築する。

3806 ワード

HTTPバージョン:httpバージョンは非常に簡単です。直接コマンドを実行すればいいです。
docker run -d -p 5000:5000 --restart=always --name registry registry
httpの倉庫でミラーをアップロードするには配置が必要です。そうでないとpshは失敗します。
vim /etc/docker/daemon.json
#    "insecure-registries": ["your_domain:5000"]
Docker 构建私有仓库_第1张图片
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
    
    Docker 构建私有仓库_第2张图片作成時にパラメータを書き間違えたことを発見しました。まず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 构建私有仓库_第3张图片、ロゴにはアクセスログが記録されます。
    アップロードミラー:
    docker tag nginx your_domain/my-nginx
    docker push your_domain/my-nginx
    
    Docker 构建私有仓库_第4张图片ここにtimeoutがありますが、アップロードに影響はありません。しばらく無視しました。ミラーを表示(アクセス:https://your_domain/v2/_catalog):Docker 构建私有仓库_第5张图片
    鏡像を引き出す:
    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の設定を確認してください。