In this guide we will show you how to create a Docker container for Odysseus. Such a container can help you to run and share Odysseus more easily. If you want to user our predefined Odysseus Server Docker Container, see Run with Docker.
Step-by-step guide
We assume that you have a Linux system up and running, e.g. Ubuntu. If you want to try it out without changing your system or if you don't have a Linux machine, we recommend VirtualBox.
Installing Docker
- Open a Terminal window.
- Type "docker"
- If Docker is already installed, a help page with common Docker options and commands will show up.
- If not, your Terminal will probably give you a hint how to install Docker. Under Ubuntu, it is "sudo apt-get install docker.io"
Preparing the Folder
Now we need a folder where we can put everything that we need in.
- Create a folder, e.g. in your "Documents"-folder.
- Move to that folder
- Create another folder "odysseus" in that folder
Creating the magic folder
tobi@tobi-VirtualBox:~$ ls Desktop Documents Downloads examples.desktop Music Pictures Public Templates Videos tobi@tobi-VirtualBox:~$ cd Documents/ tobi@tobi-VirtualBox:~/Documents$ ls tobi@tobi-VirtualBox:~/Documents$ mkdir odysseusdocker tobi@tobi-VirtualBox:~/Documents$ ls odysseusdocker tobi@tobi-VirtualBox:~/Documents$ cd odysseusdocker/ tobi@tobi-VirtualBox:~/Documents/odysseusdocker$ mkdir odysseus
- Now we need the version from Odysseus that we want to run. We can use the Odysseus Server Version as an example.
- Download Odysseus Server for Linux here (we use the 64-bit version): http://odysseus.informatik.uni-oldenburg.de/index.php?id=76
- Unzip the content of your download to the odysseus-folder within our "odysseusdocker"-folder
- Create a new file in the "odysseusdocker"-folder with the name "startup.sh" and the content in the box below (e.g. with nano or some other text editor)
startup.sh
#!/bin/sh cd home cd odysseus echo "Starting Odysseus ..." ./odysseus
- Now we want to create the Dockerfile which describes our Docker container
- Create a new file called "Dockerfile" within our "odysseusdocker"-folder (e.g. with nano again or what ever you prefer)
- Put the content from the box below into the Dockerfile
Dockerfile
# We will use Ubuntu as our basis FROM ubuntu:15.10 # We need Java 8 - install Java 8 on that Ubuntu machine RUN apt-get update RUN apt-get install software-properties-common -y RUN add-apt-repository ppa:webupd8team/java -y RUN apt-get update RUN echo debconf shared/accepted-oracle-license-v1-1 select true | debconf-set-selections RUN apt-get install oracle-java8-installer -y RUN apt-get install oracle-java8-set-default # Add java to environment variables ENV JAVA_HOME /usr/lib/jvm/java-8-oracle # Start Odysseus on startup of the container ADD startup.sh /home/startup.sh ADD odysseus /home/odysseus CMD ./home/startup.sh # We need a port to be exposed - this is the port for the WebService from Odysseus EXPOSE 9669
Now we have everything prepared in that folder.
Build and run the Docker container
- In your Terminal window, navigate to the "odysseusdocker"-folder
- Type "sudo docker build ." (The " ." refers to the folder we are in. The command assumes a file named "Dockerfile" in that folder.)
- Wait (it will take some time to get the basis for our container: Ubuntu and Java 8)
- Now we should see a message that the container was successfully build. We can type "sudo docker images" to see our images.
Our Docker images
Successfully built 36d0ac65435c tobi@tobi-VirtualBox:~/Documents/odysseusdocker$ sudo docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE <none> <none> 36d0ac65435c About a minute ago 950.6 MB ubuntu 15.10 6ed4652370be 27 hours ago 136.1 MB tobi@tobi-VirtualBox:~/Documents/odysseusdocker$