Labels

Tuesday, 20 January 2026

PI43 : OMV : Docker

Intro

A key reason for choosing OMV for my NAS is that it also provides an environment for docker containers.  Although docker is widely used I know little about it and it seems likely that I can benefit from using it on my new server.

I searched for suitable application which have been packaged for docker which I might find useful.  My initial list included Jellyfin (a media player), pihole (an ad blocker) and opencloud/nextcloud (dropbox replacement).

Installation

There are lots of docker install tutorials.  I needed to pick one which installs docker using OMV7.  I found a good youtube video from db tech

The first step is to install omv-extras, which gives you a list of plugins that can be added into OMV.  In addition to docker, I was directed to add OMV scripts and docker-compose "extras".

Next I setup three OMV shared folders for compose, backup and data.  I had a problem setting up the compose share, with OMV repeatedly complaining it couldn't do it.  After some time I discovered that my drive is formatted with NTFS as it was formatted for Windows storage. I moved the docker compose share to the linux OS SD card and the system was happy again.

With the pre-requisites complete I could click on the "install docker" button to create my system.  Finally I setup a user, dockuser, which should be able to to manage my system.




Although we used OMV to install docker and will use the it to create containers we do have access to docker through the command line so OMV doesn't get in our way of using any docker capability.

Overall this was a very straightforward install using OMV, with very little technical thought involved.



Sample Application 

The tutorial I followed used a simple web app docuwiki as an example to get started.  This was very helpful though not useful.  It shows that you start by cut-and-pasting the container definition into docker compose, defining disk storage, allocating ports and setting userids.  You then "spin up" the container; software is downloaded, configured and the app starts.  It is wonderfully straightforward and the app is independent of the local system and any complications or dependencies related to it.  The one constraint is that containers are architecture dependant.  Many / most images seem to have an arm64 version which is what my RPI requires.

 Bittorrent

For a proper test I setup the Transmission bittorrent server.  I can use this to replace an old version I have on an old server.  

Step 1 is to create a container definition and copy the docker compose definition from the linuxserver site.
I created a Samba shared folder for transmission files in OMV.
I then amended the docker compose definition for my own UID, GID, Timezone and my storage volume.  I didn't need to change any of the port numbers.



I then started the transmission container. As usual the software is downloaded, configured and then initialised.  


PI43 port 9091 allows you to see the transmission web interface so that you can add torrents to download files.

As the downloads are saved to a Samba I can access and copy them to any device.

In fact I dont need to use the web interface as I have a windows Transmission client which I use for managing torrents.

On the new transmission system I now have lots of space for downloads.  It turns out that my downloads can be 5-10 times faster than the old system, upto 10MBps.

Pi-hole

Pi-hole is a popular ad-blocker.  I have tried it before but it didn't seem to work well for me.  Setting it up in a docker container enables me to start and stop it at will.  As usual I pasted a default configuration into docker-compose.  In this case I had to make a small change to set the HTTP port to 8081.


The container comes up cleanly and I can signon to the web interface to see what is happening.


Initially pi-hole doesn't do any work.  I tested it by pointing the iPad at PI43 for its DNS and the iPad continued to work ok.  I then changed the router so it pointed to PI43 for its DNS.  Now all devices use pi-hole.

It works well, it doesn't interfere with normal browser operation and shows blank spaces instead of adverts in web pages.  If I want I can take down pihole and devices will use google DNS (8.8.8.8) instead.

Jellyfin


I am most interested in setting up Jellyfin as a media server.  It is widely used and liked.  The configuration is very simple, I just need to set up a shared drive for movies and tvseries.

Once the container had been started I could sign on to the admin interface on browser port 8096.
There is an admin user to setup and confirmation is required for movies and tvseries as the initial folders.

Installing the Jellyfin client on a PC is easy.  For some reason Samsung make it slightly complicated to install the app on the TV but I googled a solution.

Jellyfin provides a very professional interface, as good as Prime or Netflix.  It finds a thumbnail image for shows and is pretty good at discovering descriptions about individual episodes to help you choose what to watch.

I can add shows easily by copying them across to the Jellyfin shared folder.

I will call this my killer app, it makes docker worthwhile.






No comments:

Post a Comment