Question

Is there a Docker Registry storage driver for Object Storage?

I would like to use DigitalOcean Object Storage to store my Docker Registry Images.

Subscribe
Share

Submit an answer
You can type!ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

Spaces was designed to be inter-operable with the S3 API so that you can take advantage of existing integrations. I am currently running a Docker Registry instance backed by Spaces using the S3 storage driver. The key difference to note when using it with Spaces is that you must set the regionendpoint explicitly.

Here’s the storage stanza from the config.yml that I’m using:

storage:
  s3:
    accesskey: MY_SPACES_KEY
    secretkey: MY_SPACES_SECRET
    region: us-east-1
    regionendpoint: https://nyc3.digitaloceanspaces.com
    bucket: name-of-my-docker-reg-space
    encrypt: false
    keyid: mykeyid
    secure: true
    v4auth: true
    chunksize: 5242880
    rootdirectory: /

Hope that helps!

I retried today and I was able to push now. Not sure why it don’t work before. The only difference is that I tried to push over a SSH tunnel and now push through a nginx ingress controller.

I am also unable to push images by using the DigitalOcean space as storage driver.

Error during push:

e66510abeff4: Pushing [==================================================>]  3.072kB
64fd97a6ab22: Pushing [==================================================>]  56.73MB
d9bac93ee926: Pushing  2.048kB
227e20177880: Pushing [====================================>              ]  48.03MB/65.2MB
fe9c7b6dc22a: Pushing [==================================================>]  4.224MB
6b7b1fa2531c: Waiting 
6dfaec39e726: Waiting 
error parsing HTTP 403 response body: unexpected end of JSON input: ""

Error message from Registry:

level=error msg="response completed with error" err.code="blob unknown"

@asb @gaborglazer Did you manage to push and pull an image with this storage configuration?

When using the exact same config I’m getting the following error on a push:

level=error msg="response completed with error" err.code="manifest unknown" err.detail="unknown tag=latest" err.message="manifest unknown" go.version=go1.7.6