ドッキングウィンドウは、民間のドッキングウィンドウの画像ライブラリ、自己署名証明書を作成し、レジストリを展開し、レジストリ・サーバを展開します

これは、私がノートの中ドッカーレジストリを展開したとき、動作環境はCentOSに7、ドッカー18.06.1-CEで記録されています

1、実行してレジストリ

/データ/ドッキングウィンドウ/レジストリ、:私は現在、IPホストが192.168.1.249、作業ディレクトリで使用します


   
   
  1. # docker run -d -p 5000:5000 --restart always --name registry \
  2. -v /data/docker/registry/data:/var/lib/registry registry:2

この訪問では、http://192.168.1.249:5000 / V2 / _catalogは、通常の(空のJSONオブジェクト)に戻り、導入の成功を証明しました。

2、提出鏡検査


   
   
  1. # docker pull nginx:alpine
  2. # docker tag nginx:alpine 192.168.1.249:5000/nginx-alpine
  3. # docker push 192.168.1.249:5000/nginx-alpine

次のように実際失敗し、エラーが返されます。


   
   
  1. The push refers to repository [ 192.168. 1.249: 5000/nginx-alpine]
  2. Get https: //192.168.1.249:5000/v2/: http: server gave HTTP response to HTTPS client

設定ファイルに安全でない、レジストリを追加し、その後にドッキングウィンドウを再起動してドキュメントを表示、次のとおりです。


   
   
  1. # vim /etc/docker/daemon.json
  2. {
  3. "insecure-registries": [ "192.168.1.249:5000"]
  4. }
  5. # systemctl restart docker

それまでは、自己署名証明書を構成するには、次を使用して、コンフィギュレーション・ファイルを使用するだけで、本当に成功押してください。

図3に示すように、自己署名証明書を使用して

(OpenSSLの設定ファイル、提案されたドメイン名を変更するために、IPを直接使用する、ドメイン名なし)、registry.docker.local:ドメイン名を使用して証明書を生成するには、私がここにいると


   
   
  1. # mkdir -p /data/docker/registry/certs
  2. # openssl req \
  3. -newkey rsa:4096 -nodes -sha256 -keyout /data/docker/registry/certs/domain.key \
  4. -x509 -days 365 -out /data/docker/registry/certs/domain.crt

次のような情報の一部を生成する証明書を入力するには、注意共通名は、あなたが、他の直接キャリッジリターンを使用したいドメイン名を入力します。


   
   
  1. Country Name ( 2 letter code) [XX]:
  2. State or Province Name (full name) []:
  3. Locality Name (eg, city) [ Default City]:
  4. Organization Name (eg, company) [ Default Company Ltd]:
  5. Organizational Unit Name (eg, section) []:
  6. Common Name (eg, your name or your server 's hostname) []:registry.docker.local
  7. Email Address []:

以下のように、(例えば、使用することができますので、ポート5000でこれに従わないポート443などの関連パラメータを、調整することにより、ケース)コンテナの開始:


   
   
  1. # docker run -d \
  2. --restart=always \
  3. --name registry \
  4. -v /data/docker/registry/data:/var/lib/registry \
  5. -v /data/docker/registry/certs:/certs \
  6. -e REGISTRY_HTTP_ADDR=0.0.0.0:5000 \
  7. -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt \
  8. -e REGISTRY_HTTP_TLS_KEY=/certs/domain.key \
  9. -p 5000:5000 \
  10. registry:2

4、試験用

、それだけでカスタムドメイン名であるため、最初のドメインregistry.docker.local / etc / hostsファイルを追加することを忘れない、ということに注意してください


   
   
  1. # docker tag nginx:alpine registry.docker.local:5000/nginx-alpine
  2. # docker push registry.docker.local:5000/nginx-alpine

この場合、以下のようにそれが与えられます。


   
   
  1. The push refers to repository [registry.docker. local: 5000/nginx-alpine]
  2. Get https: //registry.docker.local:5000/v2/: x509: certificate signed by unknown authority

その文書がどのを置く、あなたはどのデスクトップPCでの動作をプッシュしないことに注意してください(、/etc/docker/certs.d/registry.docker.local:5000/ca.crtにdomain.crt必要があり、文書を見てください台湾のマシンああ)


   
   
  1. # mkdir -p /etc/docker/certs.d/registry.docker.local:5000
  2. # cp xxx/domain.crt /etc/docker/certs.d/registry.docker.local:5000/

次のようにこの時間は、成功にプッシュします:


   
   
  1. # docker push registry.docker.local:5000/nginx-alpine
  2. The push refers to repository [registry.docker.local: 5000/nginx-alpine]
  3. a83dbde6ba05: Layer already exists
  4. 431a5c7929dd: Layer already exists
  5. 39e8483b9882: Layer already exists
  6. df64d3292fd6: Layer already exists
  7. latest: digest: sha256: 57a94fc99816c6aa225678b738ac40d85422e75dbb96115f1bb9b6ed77176166 size: 1153

HTTPSをご覧ください://registry.docker.local:5000 / V2 / _catalog、また次のように、結果を参照してください。


   
   
  1. # curl https://registry.docker.local:5000/v2/_catalog --insecure
  2. { "repositories":[ "nginx-alpine"]}

:証明書をカスタマイズするには非常に不便見て、証明書が無料で使用することができますhttps://letsencrypt.org  (レッツ・暗号化)


参考:
https://docs.docker.com/registry/deploying/  
https://docs.docker.com/registry/insecure/#deploy-a-plain-http-registry

 

オリジナル住所:https://blog.csdn.net/envon123/article/details/83623137

おすすめ

転載: www.cnblogs.com/jpfss/p/10949312.html