The reason for



The reason for

    A few years ago, I started using domain ; it was normally for testing Ubuntu Linux server and trying to learn different open source applications. Trying to use a server with different web applications was difficult and problematic, when I needed to update one of them or uninstall or install another software. For that reason, when I learned about LXC(linux container), implemented by IBM, I tried it right away, but it was difficult to use and configure. While I was waiting for an update that fix it or make it more practical, Docker arrived : a way to run different containers, easy to configure and deploy.

    I know that virtualization is been there for some time, but for me that is a waste of resource. It doesn't make any sense to run different virtual servers using in each one of them the same linux kernel. I'm not interested in running any other version of linux or server software over my server: sometimes we have to choose what OS(Operating System) we are going to use and stick with it, no way we can learn all the OS and programming languages that are available on the open source market. Docker was a perfect solution, only used one Linux kernel for server and deployed containers without have to waste resources (CPU/Memory/IO). Docker is new, and it is still evolving: some areas are changing and others will need to change.

    Personally, I don't use Docker the way is recommended, one application or process per container. The problem is that I want to use it to deploy existing open source software, but they require more than one process to work in the correct way ... example cron, log, some of them use a database server, an email server, which can run in a separate container, but other process are more difficult to separate it, and it will make deployment more difficult because now you need to execute a group of container to run one application with all its element. Each open source application fallow a different philosofy of deploiment and development, and some times they don't adapt too well for docker containers. In the future, open source applications will adapted and changed to work better under containers or they will arrive already pre-configure for them, if it is necessary.

    Containers that I have adapted at Docker repository : The one already ready to be used can be found at, and the others in which I am still working are located at . I will keep them at to allow everybody to use them as a reference to make their own containers.

    How do I choose the open source software to be adapted to a Docker container? In general , I started to use them for practical use on my server, like tools inside of my toolbox ready to be deployed if I needed them, but I realized that they can be used for different reasons, as:

    1.- Learn and test open source software that we are interested or that we are not aware of their existence and usefulness. This will help to know if the software is the one we need before we use it for our final deployment and increase the awareness of available open source softwares.

    2.- Help to keep ours privacy rights , freedom of expression : Some open source software can be use as a replacement for services provided by the cloud , I don't oppose the cloud ; I understand the benefit that it provide to individual/organization/entities and society in general but I believe we need to have the options that allow us to move away from the cloud , partial or completed, if we choose to do it. The problem with the cloud service is that governments can force the companies providing cloud services to have access to yours private data without your knowledge and Corporation can use that data for their own means, which not always are necessary ethical or for your benefit. Open source software can be deployed locally under your control using docker containers with a home linux server.

    3.- Education : There is a lot of open source software for education that you be able to deploy using docker with minimal resource at home , schools, institutions , etc. It can be use with other projects for education like "One laptop per child" (example: a local low cost server providing different web application ).

    4.- Temporal application that only need to run in specified time or only one time.

    5.- Local/remote low cost web application that provide the same service that commercial software:

            - Security monitoring like Zoneminder web application.

            - Small business Management like Odoo.

            - Owncloud.

            - etc.

    6.- Help individuals or organizations to fight dictatorships/corruptions/ human right violations : The deployment of application to circumventing the control and monitoring of network (Internet) in location that Freedom of speech and democracy is not the norm.

    For this reasons I try to adapt all this open source software to run on docker containers and with your help by donation or your personal time on the project I hope to include more applications at the repository to be available for anybody interested on it .

    I'm also interested with open source hardware and their use with open source software. At the moment, my goal is to create a open source Robotic 3D Toolset for research and education. I don't want to call it "Printer 3D" because I believe that definition reduce some of its posibilities. Robotic 3D Toolset will be a device that will have a set of tools that can be manipulate in a 3d area that will be use for different purposes :

    -- 3D Printers. (different type of it).

    -- Scanning 3d object.

    -- Printer in 2D or curve surface.

    -- Drill.

    -- Cut different material (wood , metal, paper, fabric, composite material,etc)

    -- 3D set for film animation.

    -- Set Printer.

    -- Welding.

    -- Composite material processing.

    -- etc..

    The idea is to have a 3D platform that different people and organizations can use to design their own tools and process for research, education and testing new ideas. There will be no size limitation for this device to allow for different application but software and general design will be the same except when the size create additional constraints relate to weight , mechanical and/or time needed to do the work or process .

   I have more projects that I want to develop in the future but at the moment I only want to focus on this two. I will use the money donated via the front page ( for this two project, you can specify in which project the money donated by you should be used letting me know which open source application needs to be adapted to run in docker, specifying "for Robotic 3D Toolset" or both.


    Angel Rodriguez Ricardo