...
Code Block | ||||
---|---|---|---|---|
| ||||
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 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 whatever you prefer)
- Put the content from the box below into the Dockerfile
Code Block | ||||
---|---|---|---|---|
| ||||
FROM ubuntu MAINTAINER <Your Name> LABEL Description="Docker Image for running the Odysseus data stream management system" Version="0.1" URL="http://odysseus.informatik.uni-oldenburg.de" # Install required packages RUN apt-get -y update && apt-get -y install apt-utils wget unzip openjdk-8-jre bash nano # Download nightly build RUN mkdir -p /usr/lib/odysseus && mkdir -p /var/log/odysseus RUN wget -c http://odysseus.offis.uni-oldenburg.de/download/products/server/lastBuild/odysseus.server-linux.gtk.x86_64.zip -O /tmp/odysseus.zip && unzip /tmp/odysseus.zip -d /usr/lib/odysseus && rm -f /tmp/odysseus.zip # Define additional VM parameters RUN echo "-XX:NativeMemoryTracking=summary" >> /usr/lib/odysseus/odysseus.ini && \ echo "-XX:+HeapDumpOnOutOfMemoryError" >> /usr/lib/odysseus/odysseus.ini && \ echo "-XX:HeapDumpPath=/var/log/odysseus/dumps" >> /usr/lib/odysseus/odysseus.ini && \ echo "-XX:ErrorFile=/var/log/odysseus/dumps/hs_err_pid%p.log" >> /usr/lib/odysseus/odysseus.ini && \ sed -i "s/org\.apache\.log4j\.ConsoleAppender/org\.apache\.log4j\.FileAppender\nlog4j\.appender\.default\.File=\/var\/log\/odysseus\/odysseus\.log/" /usr/lib/odysseus/plugins/de.uniol.inf.is.odysseus.slf4j_1.7.16/log4j.properties # Create group and user RUN groupadd odysseus && \ useradd -r -g odysseus -s /bin/bash -d /var/lib/odysseus -m odysseus && \ chown -R odysseus /var/log/odysseus # Change timezone for UTC RUN echo "UTC" > /etc/timezone # Expose web server port for wsdl EXPOSE 9669 # Change user and setup environment USER odysseus ENV home /var/lib/odysseus WORKDIR /var/lib/odysseus CMD ["/usr/lib/odysseus/odysseus"] |
...
Now we have everything prepared in that folder.
...
We want to make is easy for others to install Odysseus. Hence, we will push our image to DockerHub.
- FirstlyFirst, we need to tag our container: sudo docker tag c39f4bd5fd33 tobi42/odysseus_server:03-16
- Notice, that the name "tobi42" before the slash is your account name on Dockerhub, next is the image name and after the : you have the version label or tag
- Next, we login to DockerHub: sudo docker login
- Now push it to DockerHub: sudo docker push tobi42/odysseus_server:03-16
- Take a look on your DockerHub account. You should be able to see your container.
...
- See all your running containers: sudo docker ps
- See all your started containers (including non-running containers): sudo docker ps -a
- Stop all running containers: sudo docker stop $(sudo docker ps -a -q)
- Delete all started containers: sudo docker rm $(sudo docker ps -a -q)
- Delete all images:
sudo docker rmi $(sudo docker images -q)
...