Getting started with Docker



  • Hey all.

    So I'm currently looking at installing Docker and I thought I would touch base to see some of the do's and dont's.

    I'm obviously googling and reading but I always enjoy some opinions from here.

    My first question however is though when I creater docker on Ubuntu do I need to start my Ubuntu server with all the required resources or can I add later? (Virtual on XenServer)

    Thanks



  • @Sparkum said in Getting started with Docker:

    My first question however is though when I creater docker on Ubuntu do I need to start my Ubuntu server with all the required resources or can I add later? (Virtual on XenServer)

    You should have answered your own question here. They are required resources for a reason.



  • @travisdh1

    Well, I would be able to add additional resources to the Virtual itself, (if this was just a regular ubuntu server for example) is Docker able to take them though, is it adjustable?



  • @Sparkum said in Getting started with Docker:

    @travisdh1

    Well, I would be able to add additional resources to the Virtual itself, (if this was just a regular ubuntu server for example) is Docker able to take them though, is it adjustable?

    I guess the first lesson is, do not confuse Docker with Virtual anything.

    Docker runs on a computer system. It does not know or care weather that system is on bare hardware or in a Virtual Machine.

    Running things in a VM makes a lot of sense because you can adjust the resources available to that VM. Docker does not care about that, it will use whatever resources that it sees as available to the machine as any other application would.



  • @travisdh1

    Well virtual or physical aside. Just as easy to apply new settings as it is to open a box and stuff in more resources.

    Adding resources as a later date as your needs grow.

    But thanks, question answered.



  • @Sparkum said in Getting started with Docker:

    @travisdh1

    Well, I would be able to add additional resources to the Virtual itself, (if this was just a regular ubuntu server for example) is Docker able to take them though, is it adjustable?

    Docker gets resources from the OS, so yes you can add later.



  • Thanks.

    And dockers are 90% of the time very low resource right?
    Or are there still intensive ones they are just "less intensive" than a typical install?

    Just trying to gauge a good starting point considering I dont know what I'm going to install.

    Would 10, 10GB, and 100GB be a safe starting point for say....10-20 dockers?

    Would the cores spread accross the dockers or is it dedicated?
    I.E. does 10 cores = 10 dockers

    Thanks



  • @Sparkum said in Getting started with Docker:

    Thanks.

    And dockers are 90% of the time very low resource right?
    Or are there still intensive ones they are just "less intensive" than a typical install?

    Just trying to gauge a good starting point considering I dont know what I'm going to install.

    Would 10, 10GB, and 100GB be a safe starting point for say....10-20 dockers?

    Would the cores spread accross the dockers or is it dedicated?
    I.E. does 10 cores = 10 dockers

    Thanks

    It all depends on the Docker containers themselves as to how much storage and memory they'll require. CPU wise, no, you don't need a cpu core for each docker container.



  • @travisdh1

    Alright thanks, I would like to imagine those specs will atleast get me going for a while!



  • I'll echo what Scott is saying here, don't think of a container in the same context as a virtual machine, they are not the same thing. You don't want to overload a container with multiple services, that will defeat the purpose of using a container. Containers are meant to contain a single service and abstract that service away from the operating system, streamlining the movement of that service between development, QA, staging, and production environments.

    So if you have an application you want to deploy into a production environment that requires a MariaDB database and an instance of the actual application running, you would want to deploy a minimum of two containers. One container for the database, and one container for the application. As demand for the application grows you might consider adding additional containerized instances of the application and possibly a load balancer or HA proxy. At that point you would spin up your load balancing container, and any additional instances of the application in separate containers.

    The primary use case for containerized workloads is development and automation of large scale distributed systems. You can run services outside of a development environment using docker, rocket, or lxc containers, but you're more than likely not going to see any significant benefit unless you are operating at a larger scale serving a lot of users/endpoints.



  • @RamblingBiped

    Will I see a benefit - Probably not

    Will I learn a new skill - Yep

    I understand the "basic" fundamentals of how dockers should operate, and I've planned with them in Unraid (but that's just click and hit install) so just wanted to start the whole thing from the beginning and see how exactly they operate.

    Thanks for the detailed response.



  • @Sparkum said in Getting started with Docker:

    And dockers are 90% of the time very low resource right?

    Docker has low overhead, but the workload inside of it determines 100% of the above, not that it is on Docker.



  • One thing to add, I'm not sure with docker but with LXC you can set resource limitations with cgroups.