Docker Registryの保存先にIBM Cloud Object Storageを使う
はじめに
IBM CloudでOpenShiftのオフライン環境インストールをするのにDockerRegistryが必要で、
そのDocker Registryの保存先として、IBM Cloud Object Storageを使いたかったのですが、Docker Registry Storage Driverの設定でS3互換のIBM Cloud Object Storageのドキュメンテーションが無くて接続するまで、四苦八苦したのでメモとして残しておきます。
前提
事前に以下のサイトを参考にCentOS7のdocker-distributionを使ってプライベートレジストリは構築済み
- (参考サイト)Docker RegistryをinstallしてSSLの設定とimageをS3に保存する
https://ishiis.net/2017/01/12/docker-distribution-install/
IBM Cloud Object Storageの必要な情報
(設定名) (例)
{cos_hmac_keysのccess_key_id} => xxxxyyyy86a4e6d8ceb76487f1b0c19
{cos_hmac_keysのsecret_access_key} => xxxxeyyyy17c753dcd229fbb8b0ee56a69fcca82be032ef
{ロケーション} => us-geo
{ロケーションのエンドポイント} => https://s3.private.us.cloud-object-storage.appdomain.cloud/
{バケット名} => denno
{バケットのパス}: => /
docker-distributionの設定
- config.xml
version: 0.1
log:
fields:
service: registry
storage:
cache:
layerinfo: inmemory
#filesystem:
# rootdirectory: /var/lib/registry
s3:
accesskey: {cos_hmac_keysのccess_key_id}
secretkey: {cos_hmac_keysのsecret_access_key}
region: {ロケーション}
regionendpoint: {ロケーションのエンドポイント}
bucket: {バケット名}
encrypt: true
secure: true
v4auth: true
chunksize: 5242880
rootdirectory: {バケットのパス}
http:
addr: :5000
tls:
certificate: /var/lib/registry/certs/registry.lab.example.com.crt
key: /var/lib/registry/certs/registry.lab.example.com.key
結果
(設定名) (例)
{cos_hmac_keysのccess_key_id} => xxxxyyyy86a4e6d8ceb76487f1b0c19
{cos_hmac_keysのsecret_access_key} => xxxxeyyyy17c753dcd229fbb8b0ee56a69fcca82be032ef
{ロケーション} => us-geo
{ロケーションのエンドポイント} => https://s3.private.us.cloud-object-storage.appdomain.cloud/
{バケット名} => denno
{バケットのパス}: => /
- config.xml
version: 0.1
log:
fields:
service: registry
storage:
cache:
layerinfo: inmemory
#filesystem:
# rootdirectory: /var/lib/registry
s3:
accesskey: {cos_hmac_keysのccess_key_id}
secretkey: {cos_hmac_keysのsecret_access_key}
region: {ロケーション}
regionendpoint: {ロケーションのエンドポイント}
bucket: {バケット名}
encrypt: true
secure: true
v4auth: true
chunksize: 5242880
rootdirectory: {バケットのパス}
http:
addr: :5000
tls:
certificate: /var/lib/registry/certs/registry.lab.example.com.crt
key: /var/lib/registry/certs/registry.lab.example.com.key
結果
設定反映後、Docker Registryに対してdocker pushすると、IBM Cloud Object Storageのバケットの画面にDocker Registryに保存されたファイルが出力されます。
最後に
IBM Cloud Object Storageは S3互換サービスなので、他のS3互換のサービスでも参考になると思います。
(参考)Use minio as docker registry storage driver
https://medium.com/@enne/use-minio-as-docker-registry-storage-driver-c9c72c72cc87
追記
わざわざObjectStorageに放り込むのは、DockerRegistryが動作する仮想インスタンスを必要な時にだけ、契約すればいいかなって
発想からでした。
Author And Source
この問題について(Docker Registryの保存先にIBM Cloud Object Storageを使う), 我々は、より多くの情報をここで見つけました https://qiita.com/daihiraoka/items/78f0a9ead1a2c1731450著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .