Hello out there,
This thread describes my setup with Owncloud running in a Docker container which I want to recommend to people who simply want to use OwnCloud and not tune every piece and bit of it.
Previously on "The Walking Dead":
I had an OwnCloud installation running using the plugin from omv-extras. I just wanted to give it a try and it was simple. Well - it worked but was kind of Zombie slow. Furthermore there were no updates as even back then Volker claimed that there will be no updates to this plugin.
The Big Bang:
I checked how other people installed owncloud and found the Owncloud 8 and MySQL: alternative approach. I tried to set it up and "managed" to blow my whole box when messing around with two parallel nginx installations. I then searched around how to make my old OwnCloud faster but these things required a lot of knowledge in orchestrating all the participating components - I'm out.
Now - Lots of Fish :
I heard a talk on docker at work and while I was listening I thought: "This is what I need for OwnCloud". So I looked into it and was happy to find the "Docker-GUI" plugin from omv-extras. You must know that I still have never created a docker container myself, knowing very much about docker is not necessary. Here we go!
HowTo:
- Install "Docker-GUI" plugin
- Fetch a Owncloud Image
- I chose l3iggs/owncloud as it appeared to be tuned for performance and is prepared for SSL usage.
- Pull the image in the Docker Plugin
- Run the image. Think twice over the following settings. Right now one cannot simply edit the settings via the plugin once they are running. I tried to edit it once manually in the files afterwards, but did not succeed.
- Give the image a speaking name, you will refer to the container by this name
- Check "Restart on system reboot" so your container goes up with the machine
- Add mount points. Choose a host path and enter where this path should be mounted in the docker image. Do not forget to click the Plus symbol after you entered both, this is crucial. I for example chose to provide the docker container with a host directory OwnCloud which I then chose as OwnCloud root folder in the container. This way I have all the data directly accessible on my host system.
- Add a port forwarding for HTTP and HTTPS
- For HTTP I configured Host-IP:<MyHostIP>, Port:8080 and selected Exposed-Port: 80/tcp
- For HTTPS - Host-IP: <MyHostIP>, Port:4434 and selected Exposed-Port: 443/tcp
- Start the container
- Navigate to <YourHostIP>:4434 or :8080 - you should see your Owncloud Installation. Thats it.
- There is further lecture on getting your own SSL certificate to run from the docker image author. He inserted a script on the image to generate a self-signed certificate conforming to the container.
- Beginner-Tip to get a shell inside the container: docker exec -it <ContainerName> bash
- Beginner-Tip to get a file from your host system to the docker image or vice versa use docker cp: docker cp <hostPath> <ContainerName>:<containerPath>
Performance:
The performance is great. I really like using Owncloud now. It is even fast enough my wife likes to use it. I want to quote from the Owncloud 8 Thread:
I would avoid the Docker.
Install it direct would be easier and better performance and management.
Easier? Sorry but from what I saw how to configure all the stuff for Owncloud, really easier is inserting the docker image that someone tuned for performance than fiddling around risking to damage your OMV installation. The performance is great as well. There is virtually no overhead for docker. The nginx inside docker is running as a natural OS process with a really thin abstraction layer. Docker is not a VM with expensive hardware virtualization. The real benefit here is encapsulation. I can run the whole toolchain for OC without any thoughts that it might interfere with OMV. Update OMV? Does not affect my container!
Updating:
Since OMV has its own update mechanism you do not need to update the container unless you want to switch any of the glue-software on the docker image.
I am eager to hear your thoughts.