Docker Image

This Docker image provides an easy way to run an OpenIO namespace. It deploys and configure a simple non-replicated namespace in a single container.

OpenIO SDS service discovery and resolution relies on IP addresses, meaning that you can’t change service IPs after they have been registered to the cluster. By default, Docker networking may change you IP when your container restarts, and this is not compatible with OpenIO SDS at the moment.

Deploy

First, download the OpenIO Docker image from the Docker Hub:

# docker pull openio/sds

By default, start a simple namespace listening on 127.0.0.1 inside the container using docker run:

# docker run -ti --tty openio/sds

You can now manipulate your namespace inside your container using the OpenIO End User CLI. For example, put an object :

# echo 'Hello OpenIO!' > test.txt

# openio object create MY_CONTAINER test.txt --oio-ns OPENIO --oio-account MYACCOUNT

Deploy the S3/Swift Gateway

You can launch the OpenIO docker image with our S3 and Swift gateway embedded, and map its port (6007) to access to it remotely.

Launching the container with port mapping:

# docker run -ti --tty -p 127.0.0.1:6007:6007 openio/sds

The S3 and Swift gateway is now accessible on 127.0.0.1:6007.

Using Swift gateway

First install python-swiftclient:

# yum install python-swiftclient

Then you can use the swift APIs:

# swift -A http://127.0.0.1:6007/auth/v1.0/ -U demo:demo -K DEMO_PASS stat

Using S3 gateway

First install awscli:

# yum install awscli

Then, set your credentials in the following configuration file ~/.aws/credentials:

[default]
aws_access_key_id=demo:demo
aws_secret_access_key=DEMO_PASS
region=US
s3 =
    signature_version = s3

Finally you can put your first object:

# aws --endpoint-url http://127.0.0.1:6007 --no-verify-ssl s3 cp /etc/localtime s3://bucket1

Using the host network interface

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

Setting the interface:

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

Specifying the IP:

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