Now that you've decided to set up a home automation server, one of the first choices that you have to make is how to install Docker on your server.
We are going to cover four completely different ways of getting Docker up and running in your home environment.
The four common ways to run Docker on your home server are:
- Install it on a bare-metal server running Linux or Windows, for those of you who are running a server that is not a virtual machine.
- Use Docker on Unraid, which is a popular home server operating system.
- Use Docker on your NAS, such as a Synolgy or QNAP NAS.
- Install Docker in a virtual machine on Proxmox, which is a popular virtualization platform.
Each of these methods has its own advantages and disadvantages, and we will cover those in this article.
Docker on a Bare-Metal Server
Installing Docker directly on your operating system of choice is the most resource-efficient way to run Docker. It is also the most flexible since you can run Docker on any operating system that you want. Docker is available on almost every operating system, including Windows, Linux, Mac, and even runs on a Raspberry Pi.
The only downside to installing Docker on a bare-metal server is that it requires a bit of work to get it installed. To install Docker this way, you should already be familiar with the command line environment on your server.
You will need to install Docker using the package manager for your operating system. For example, on Ubuntu, you can run the following command:
sudo apt install docker.io
And on Fedora based Linux, you can run the following command:
sudo dnf install docker
The installation process is different for every operating system, so you will need to do a bit of research to find the right commands for your server. Once you have Docker installed, you can start using it right away. Most of the time, the installation service will configure Docker to start at system boot up automatically. To test if Docker is running, you can run the following command:
$ docker --version
Docker version 20.10.17, build 100c701
If you get a version back, then Docker is installed and running on your server. You are now ready to download images and start containers. You can use either the command line, or use docker-compose to create your containers.
Docker on Unraid
If you have already purchased Unraid for your home automation server, then you are in luck. Unraid ships with Docker already installed and configured. It also has a very nice Docker management page in the Unraid UI.
Most people install Docker images in Unraid using the Community Applications plugin. This plugin allows you to install Docker images with a single click. It also allows you to configure the images using a web interface. This is a great way to get started with Docker, and it is very easy to use.
With Unraid you can also install Docker images using the command line, or using docker-compose. This is a great way to get started with Docker, and it is very easy to use.
Unraid defaults to having you store your Docker mount points, or volumes, in the
/mnt/user/appdata directory. This is a great place to store your Docker volumes, because it is easy to back up and restore. If you are new to Docker, then Unraid is probably the easiest way to get started.
Docker on a NAS
Many NAS devices have Docker built-in. For example, Synology and QNAP NAS devices both have Docker built-in.
The process of installing Docker is different for each, but it basically boils down to using the built-in application store to find the Docker package and install it. Once you have Docker installed, you can start using it right away.
The only problem with using Docker on a NAS is that NAS devices tend to be under-powered. You will probably be fine running a few Docker containers on a NAS device, but you will probably run into performance issues if you try to run too many containers. If you are running a lot of containers, you will probably want to use a more powerful server.
As point of reference, it's not difficult to install more than 20 containers on a typical home automation server. Most NAS devices will struggle to keep up with that workload.
Docker in a VM on Proxmox
Proxmox is an excellent choice for installation on a home automation server. It's fast, free, and very stable. The virtual machine support in Proxmox is also excellent, and it is very easy to create and manage virtual machines.
However, Proxmox does not support Docker out of the box. The people behind Proxmox instead recommend using LXC containers. LXC containers are very similar to Docker containers, but they are not as popular.
If you are running Proxmox and you want to run Docker, then you can install Docker in a VM. A popular combination is to create an Ubuntu VM in Proxmox, then install Docker in the Ubuntu VM.
This might seem like a lot of overhead just to run a Docker container, but it turns out to be a very efficient way to run Docker. The Ubuntu VM will only use a few hundred megabytes of RAM, and it will only use a few percent of your CPU. This is a very efficient way to run Docker, and it is a great way to get started with Docker.
I have run many Dockers in Unraid, on bare-metal, and in a VM on Proxmox, and I've found that the VM on Proxmox is just as reliable and fast as running Docker on bare-metal.
If you are on the fence trying to decide between Unraid and Proxmox, then (unless you have a good reason) you should go with Unraid. Unraid is exceptionally easy to get started with and maintain. Proxmox is a very advanced operating system, and not for the faint of heart.
After Setting Up Docker
Now that you've got Docker up and running, what do you do with it? One of the first things you should do is install the Portainer Docker image.
Portainer is a web-based Docker management tool that makes it easy to manage your Docker containers. Even if you have Unraid, you should still install Portainer, because it has many more features than the Unraid Docker management page. One of the best Portainer features is the ability to stop a Docker container, delete it, download the newest image, and create a new container with a single click. This makes updating Docker images very easy.
Portainer is also a great way to learn about Docker. It has a very nice web-based interface that makes it easy to see what Docker images you have installed, and what containers are running. It also has a nice web-based terminal that makes it easy to run commands in your Docker containers.
Install Docker on Your Home Automation Server
There are many ways to install Docker on your home automation server. The best way to install Docker depends on your server, and what you want to do with it.
If you are running a server that is not a virtual machine, then you should install Docker directly on your server. If you are running a virtual machine, then you should install Docker in a VM on Proxmox. For those who prefer to run their home automation on a NAS, you should install Docker on your NAS if it supports it.