I started really wondering into the world of containerizing and self-hosting with the help of Linuxserver.io dockers and tutorials. After all this I experimented with Nextcloud, Heimdall, Collabora docker and the sooo called SWAG (as reverse proxy with baked in certbot solution).By the end of this pet projects I got familiar with the capability of docker itself so as Dockerfile and the really handy tool called docker-compose. I just used my older laptop at some point with a fairly good (i3-4020U) CPU as a test server with Duckdns as dynamic DNS solution. With this setup I could easily experiment later on when I realized that thanks to my ISP out-bounding connection to my Public DNS name from within my LAN was impossible (At this point of time it seems how the ISP modem handles and prefers IPv6 over IPv4 which causes some issues). After all this experiment I have started using a RaspberryPi 4 2GB version to operate at least few less resource heavy services.
At this point what I learned almost everything can be dockerized, however there are few of things that you are not suppose to and the whole concept docker is to one service per docker , which makes some containerization pain in the bacon. On these occasions I found that good old “greybeard” pre-systemd techniques can be life savers. It’s not that you can’t run systemd in container,but its an unnecessary waste of resource.
There is an other similar ,but different way of running some things which called LXC
linux containers with a so called framework LXD
. The connection between these two things is similar to docker and docker-compose as far as I see. However while docker is a one service in container , this solution is more flexible and instead running on a runtime ,the container itself sharing the kernel with the host. With this said this solution is probably more straightforward for Linux users.0303030