Docker had its time in 2014. It provides a container solution of applications. Will Moodle use this tech later? I think it is time to start thinking about this now.
Maybe you could start with an explanation of what docker is (for those of us who had never heard of it before) - a link to a relevant website would be a bare minimum.
Next you could explain exactly why this might be relevant to Moodle and how it would benefit end users / site admins / developers / other? (I don't know what docker is, so I don't know who the target audience is).
Thanks, David, nice point.
Docker is an open platform for distributed applications for developers and sysadmins. Its official website is https://www.docker.com/. It is one of the most popular topic in 2014. It provides better cross-system solution of apps. We can think it as a better and smaller virtual machine. I know Bitmami is researching it. Its github is https://github.com/docker/docker.
If you are talking about using docker on self hosted moodle, As per i know, docker is deployed at server.
Hence how could moodle use it?. I mean when you install the application on your server, Its you or your IT Admin who can decide whether to use docker or not. So its the choice of yours.. not moodle
Or if you are seeking for a docker config file for moodle , you can check those out on internet.
Following link may help you: https://github.com/sergiogomez/docker-moodle
If you know how to use docker it makes it very easy for you to setup a moodle instance. You don't need to know how to configure apache or mysql. You can start off very easily by just pulling the docker image and starting a container.
I have create a dockerfile for moodle. Just follow the instructions and you can get your moodle instance up and running easily.
I put together a Docker / Docker-compose configuration to be used for developing Moodle or plugins.
No rocket science:
It mounts moodle directory form a subdirectory on the host filesystem, so the developer may change the PHP code.
This avoids installing the db and apache on OS X machines and also helps to easily have a clean Moodle installation in seconds.
It is meant to be used on OS X, using Docker Machine VM, but could be easily adapted to Linux.
I don't understand the benefit. You don't need to install the web server or db, so what does it use for a web server or db? As you can probably tell, I am unfamiliar with docker.
I've only just started with Docker (http://docs.docker.com/) on Windows via VirtualBox and after reading the documentation I can see that it has the advantages of.....
- Replicating exactly a complex environment without the need to go through a long installation procedure. Saving you lots of time having to scratch your head over why its not working for you.
- In the 'Docker container' which is essentially a virtual machine - a contained sand boxed machine within a machine - you have the web server, db etc. all installed and configured without messing up the parent operating system.
- Its only running when you need it and therefore frees up resources / CPU when you're doing something else.
I can clearly see development benefits, but... could this also apply to having a 'production' server with its complexity out of the box?
Of course. Docker can be used in production. It is an interesting deployment system where multiple nodes can be easily deployed. Especially useful for SAAS, cloud deployments etc.
Before using Docker containers in production, beware most of the images available on the docker hub are not-so-secure. They often require some changes.
But beyond that, it may be very useful to use them in production.
In a similar spirit there is also Charles Fulton's "Moodle Hat":
Moodle Hat uses Vagrant instead of Docker, but that project and this one still have a lot in common. You get a virtual machine with most of the installation and config done for you running Moodle code that is also directly available on your own host machine so that you can use your usual dev tools. Vagrant and Moodle Hat are definitely dev only; they are not suitable for production. Charles also sets up the PHPUnit and Behat testing environments, which is a nice touch.
The virtual machine you get with Moodle Hat is a full OS, not a slim container. It proabably uses more resources, but the threshold for entry may be slightly lower.
I love how both projects are pushing the Moodle dev frontiers.
Unlike other Dockerfiles cited in this discussion, I've not used an Ubuntu image because I do not really like the idea of attaching the tests to a specific distribution, so, instead, I've used the php:5.6 image.
The downside of this approach is that you have to install all moodle dependencies and php extensions and although it may be used as documentation as well, it takes a lot of time to download and compile everything everytime tests run.
What do you think about this?
Hi we have been looking into both Docker and Vagrant at our work place one of my colleagues has already adapted to using this, and it has the advantages with both methods of being able to create and spin up your moodle environments fast.
A good case senario for this would be for new users as they could install Docker or Vagrant and virtual box and be able to spin up their own sandboxed environments of Moodle quickly and easily along with the server they want so in our case CENTOS, and everything else they require, this would take away the need for using XAMPP or WAMP and you could spin up different development Moodles to test different features really quickly.
Another example of this would be if you have a heavily customised moodle with a number of settings which need to be set, you can create your image of this and then every time you need to create a new moodle you can create this from the image which will come with all your settings already in place.
But as I say am new to this and just stepping down this path now so apologies in advance if I have any facts wrong here.