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
Start a simple namespace
docker run -p 6007:6007 openio/sds
Now, you can use the docker container with the defaults ip address (172.17.0.2), user (demo:demo) and password (DEMO_PASS)
Openstack swift
Install the swift client and use it like this :
yum install python-swiftclient
swift -A http://172.17.0.2:6007/auth/v1.0/ -U demo:demo -K DEMO_PASS stat
AWS
Create configuration files in your home directory like:
[default]
aws_access_key_id = demo:demo
aws_secret_access_key = DEMO_PASS
[default]
s3 =
signature_version = s3v4
max_concurrent_requests = 10
max_queue_size = 100
region = us-east-1
And install the AWS client and use it like this :
yum install awscli
aws --endpoint-url http://172.17.0.2:6007 --no-verify-ssl s3 mb s3://bucket1
You can also use a compliant S3 appliance like describe in the integration part.
OpenIO
Use the openio client in the docker instance
docker ps
docker exec -it <container_ID> bash
# echo 'Hello OpenIO!' > test.txt
# openio object create MY_OIO_CONTAINER test.txt --oio-account MY_ACCOUNT
Custom your docker instance
Use 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 -e OPENIO_IFDEV=enp0s8 --net=host openio/sds
Specifying the IP
docker run -e OPENIO_IPADDR=192.168.56.101 --net=host openio/sds
Binding to host port
docker run -p 192.168.56.102:6007:6007 openio/sds
Change the credentials
Default credentials are demo:demo as user and DEMO_PASS as password
docker run -e SWIFT_CREDENTIALS="myproject:myuser:mypassord:.admin" openio/sds
Change the S3 region
Default region is us-east-1
docker run -e REGION="us-west-1" openio/sds
Change the rawx backend (beta)
docker run -e RAWX_BETA="true" openio/sds
Use the API
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 -it <container_ID> /bin/cat /etc/oio/sds.conf.d/OPENIO > /etc/oio/sds.conf.d/OPENIO
Mount your local storage
The purpose of this image is mainly the POC or the continuous integration. However, it is quite possible to save your data locally.
mkdir accounting metadata-level0 metadata-level1 metadata-level2 data
sudo chown 120:220 accounting metadata-level0 metadata-level1 metadata-level2 data
docker run \
-v $PWD/metadata-level0:/var/lib/oio/sds/OPENIO/meta0-0 \
-v $PWD/metadata-level1:/var/lib/oio/sds/OPENIO/meta1-0 \
-v $PWD/metadata-level2:/var/lib/oio/sds/OPENIO/meta2-0 \
-v $PWD/accounting:/var/lib/oio/sds/OPENIO/redis-0 \
-v $PWD/data:/var/lib/oio/sds/OPENIO/rawx-0 \
openio/sds:18.10