That’s pretty cool. I did something similar but when it came to persistence between upgrades, I got stuck and that was the end for me.
One feedback I have is that default package mono-complete contains quite an old version of Mono. It will work but I found that newer versions of Mono are at least twice as fast. So you could modify your Dockerfile to install Mono this way:
I am curious to know exactly what this dockerized thing does. I am not a programmer so the stuff on Github didn’t really make any sense to me even though I work in IT - but I don’t do programming alas.
Is this something for the end user or for programmers only? All I am getting is that the data is separate from the program or something like that. But then again, my data file is on my data drive and the program is on the windows drive!
Docker is a modern and future method of software distribution.
In fact Lubos created a piece of software, which is already packed to hide database and other guts from end-user, but a lot of software (most open source) still designed to have dance around it’s installation. Thus docker allows you to launch entire service/software with it’s dependencies with one command. It will automagically download all necessary stuff from central repository (Docker HUB) and launch every component, which software is dependent on. And with this method of installation Manager Server will be installed in the same manner as every other service on my server.
This tool is targeted to system administrators to make their life easier. But if you’re using windows version of Manager, docker is something you do not need.
I think that I understand. So in a sense Manager is like the Linux Source File and instead of creating a debian package or a Fedora Packag, Docker checks the distro and installs the dependencies that the Source file requires that the distro does not have.
In fact it works little different. Imagine you need a database server, web server and some source code to run, for example, Wordpress blog engine. You should install MySQL to the server, properly configure it, create DB accounts for wordpress, create database. Then, you should install and configure web server, configure it with correct website root sources, DNS settings and to point on wordpress source code. Next, you should copy and unpack fresh source code from some where.
All this actions pollute your servers directories, settings in /etc folder, logs in /var/log folder and so on.
Docker “captures” changes on your file system, isolates your server from this changes and builds something like virtual folder structure. So when you deploy docker container it does not change /etc, /var/log, /usr and other folders, but runs entire wordpress web server + database + source code in “virtual” form. Even further, you can stop, remove, install updated container and your filesystem still will be clean! And that’s not finish, it does not matter, which linux operating system is on your host, CentOS, Debian, Ubuntu or CoreOS, your actions to run wordpress will be the same. In this case migration of entire website from one server to another is like a breeze.
As you can see Manager contains webserver, database and source code parts, but hides this components compiled in one package.
Ok I can follow what you are saying there. How would this benefit a user using Manager? Given that the program uses less than 10Mb in disk space and contains like 5 files, its hardly necessary to virtualise it. Interesting concept but I don’t know how applicable it is here.
There are some hosting companies which use Docker as their deployment mechanism. Maybe in 5-10 years, there will major shift from SaaS where companies will prefer to choose who they want to host their software with. Right now, vast majority software in the cloud can be hosted only by a company which has developed the software.
Essentially you pay monthly fee for each software you run in the cloud and this monthly fee is whatever the software vendor decides it to be. Maybe in future, companies will prefer to purchase the software outright and then run all their software with one hosting company. So instead of paying 10 companies separately each month, you just pay one company for hosting and that would be it. You will have greater control over data, upgrades and more leverage over the cost (you choose hosting company and you decide when to purchase newer versions of the software - like in the old days).
In order for this future to happen, there needs to be some generally accepted virtualization standard which all programs would use (whether they are complex to deploy or simple to deploy like Manager). Maybe it will be Docker, maybe it will be something else.
Aah Thank you. I finally understand what docker is all about. Light bulb finally switches on.
Only issue that I see with the future of Docker is that most companies have moved or are moving to a subscription only cloud version of their software and already have stopped selling their product outright.
I’m one of them, setting up next cloud and manager, via Open Media Vault based on Debian with docker webui plugin. Just need to pay for DDNS, Internet Bills, Electric, router and build small factor pc (or reused clunky ol’ pc unsuitable for windows 10) similar to NAS.