Public | Automated Build

Last pushed: 2 months ago
Short Description
Official OpenIO SDS Docker image.
Full Description

openio/sds Dockerfile

This image provides an easy way to run an OPENIO namespace with an Openstack Swift/Swift3 proxy.
It deploys and configure a simple non-replicated namespace in a single Docker container.

How to get this image from the hub

To get the latest one built on the docker hub

# docker pull openio/sds


# docker pull openio/sds:latest

If you want a specific OpenIO SDS version & linux distribution

For example, run:

# docker pull openio/sds:16.10-centos-7

You can choose between:

  • 16.10-centos-7
  • 17.04-centos-7
  • 17.04-ubuntu-xenial

Those images are rebuilt regularly, but if you want to have the most up-to-date
versions, the best is to rebuild them locally (on your computer).

How to (re-)build this image

First get the source:

# git clone
# cd dockerfiles

Then build one specific image:

# docker build -t openio/sds:17.04-centos-7-local openio-sds/17.04/centos/7

How to use this image

OpenIO SDS depends on IPs, meaning that you can't change service IPs after they have been registered to the cluster.
By default, Docker networking change your IP when your container restarts which is not compatible with OpenIO SDS at the moment.

Keep it simple

By default, start a simple namespace listening on inside the container.
An Openstack Swift proxy with the Swift3 middleware is available, with TempAuth authentication system and default credentials set to demo:demo and password DEMO_PASS.

# docker run -d openio/sds

When starting the container, it takes a few seconds to start (depending on your host performance). To show the container startup, you can remove the -d option to the command line.

To access the openio command line, you can access inside the container (supposing the OpenIO SDS container is the latest you started):

# docker exec -ti --tty $(docker ps -l --format "{{.ID}}") /bin/bash

Using host network interface

You can start an instance using Docker host mode networking, it allows you to access the services outside your container. You can specify the interface or the IP you want to use.

Setting the interface:

# docker run -e OPENIO_IFDEV=enp0s8 --net=host openio/sds

Specifying the IP:

# docker run -e OPENIO_IPADDR= --net=host openio/sds

Change the Openstack Swift default credentials:

# docker run -e OPENIO_IFDEV=enp0s8 --net=host -e SWIFT_CREDENTIALS="myproject:myuser:mypassord:.admin" openio/sds

Bind the Openstack Swift/Swift3 proxy port to you host:

# docker run -p openio/sds

Setting the default credentials to test Openstack Swift functionnal tests:

# docker run -p -e SWIFT_CREDENTIALS="admin:admin:admin:.admin .reseller_admin,test2:tester2:testing2:.admin,test5:tester5:testing5:service,test:tester:testing:.admin,test:tester3:testing3" openio/sds

Before using openio CLI or Python, Java or C API from the outside, copy the contents of /etc/oio/sds.conf.d/OPENIO from the container to the same file on your host.

# docker exec -ti --tty $(docker ps -l --format "{{.ID}}") /bin/cat /etc/oio/sds.conf.d/OPENIO > /etc/oio/sds.conf.d/OPENIO

Binding the OpenIO Swift gateway with Openstack Keystone

By default, the image comes standalone with the TempAuth authentification system which is very handy for development and testing. However, if you want to test along with Openstack Keystone identity service, you can specify Keystone URI and URL as follow:

# docker run -d --net=host -e KEYSTONE_ENABLED='true' -e KEYSTONE_URI='' -e KEYSTONE_URL='' openio/sds


To test with different object storage clients:

Docker Pull Command
Source Repository