Dockerfiles to run the XtreemFS services in containers. The images are available
on Docker Hub as sorenroug/xtreemfs-common
and sorenroug/xtreemfs-client
.
You can try it out immediately by typing:
git clone https://github.com/sorenroug/xtreemfs-docker.git
cd xtreemfs-docker
docker-compose up -d
The server images will be downloaded and launched.
The DIR, MRC, and OSD services are using a common image named sorenroug/xtreemfs-common. The containers are built from the XtreemFS Git repository at https://github.com/xtreemfs/xtreemfs.git. You can clone the repositoring by running:
git clone https://github.com/sorenroug/xtreemfs-docker.git
cd xtreemfs-docker
Start with building the sorenroug/xtreemfs-common through executing
docker build -t sorenroug/xtreemfs-common xtreemfs-common/
Service configuration files are expected to be mapped into /xtreemfs_data. The config files have to be named dirconfig.properties, mrcconfig.properties, and osdconfig.properties. Example configuration files for each service are provided in the config-examples directory. A new service can be started for instance by running
docker run -v /xtreemfs_data:/xtreemfs_data -p 32640:32640 -t -d \
sorenroug/xtreemfs-common:latest osd
while the config is stored in /xtreemfs_data/osdconfig.properties on the host. Network
ports have to be mapped adequately while executing docker run
. Default ports
are 32636 for the MRC, 32638 for the DIR, and 32640 for the OSD. You have to
ensure that services register with the correct address at the DIR service, this
can be achieved by setting the "hostname" parameter for the MRC and OSD service.
The provided client images contains the XtreemFS FUSE client and can be used to build customized images for own services or run it interactively. The client image is also based on the xtreemfs-common images and can be generated by executing
docker build -t sorenroug/xtreemfs-client xtreemfs-client/
You can run the XtreemFS client in an interactive container by executing
docker run -t -i --privileged --net=host -e LANG=C.UTF-8 sorenroug/xtreemfs-client /bin/bash
Note that FUSE requires to run the container in the privileged mode.
Please consider the XtreemFS user guide at http://xtreemfs.org/userguide.php and the quick start tutorial at http://xtreemfs.org/quickstart.php for a general introduction to XtreemFS.
The easiest way to start up all the containers is with docker-compose.
dir:
image: sorenroug/xtreemfs-common:latest
net: "host"
volumes:
- "./config-examples:/xtreemfs_data"
environment:
LANG: C.UTF-8
ports:
- "30638:30638"
- "32638:32638"
command: dir
mrc:
image: sorenroug/xtreemfs-common:latest
net: "host"
volumes:
- "./config-examples:/xtreemfs_data"
environment:
LANG: C.UTF-8
ports:
- "30636:30636"
- "32636:32636"
command: mrc
osd:
image: sorenroug/xtreemfs-common:latest
net: "host"
volumes:
- "./config-examples:/xtreemfs_data"
environment:
LANG: C.UTF-8
ports:
- "30640:30640"
- "32640:32640"
command: osd