Advertisement
If you have a new account but are having problems posting or verifying your account, please email us on hello@boards.ie for help. Thanks :)
Hello all! Please ensure that you are posting a new thread or question in the appropriate forum. The Feedback forum is overwhelmed with questions that are having to be moved elsewhere. If you need help to verify your account contact hello@boards.ie

Docker - what is it?

Options
  • 23-09-2016 4:45pm
    #1
    Closed Accounts Posts: 6,075 ✭✭✭


    And what problem did it try to solve? I know that it's similar to creating a VM on an existing computer, that when you deploy an app on docker, docker provides everything that the app requires, you don't need to add them yourself.


Comments

  • Registered Users Posts: 2,018 ✭✭✭Colonel Panic


    Docker containers are more like sandboxed environments than they are VMs. The same thing (more or less) has existed for a long time in the form of chroot and BSD jail, but Docker is config file driven to make reproducing environments a doddle.


  • Registered Users Posts: 6,236 ✭✭✭Idleater


    Containerisation as a children's story:
    https://deis.com/blog/2016/kubernetes-illustrated-guide/


  • Registered Users Posts: 6,035 ✭✭✭Talisman


    And what problem did it try to solve? I know that it's similar to creating a VM on an existing computer, that when you deploy an app on docker, docker provides everything that the app requires, you don't need to add them yourself.
    Docker was developed as an internal tool by a PAAS provider called dotCloud to spin up instances of web applications without concerns for the underlying architecture.

    Here's a 5 minute clip of the first public demonstration which explains its origin.


    Docker is better than creating a VM because the Docker container uses the minimum resources required for the application instance. From a security perspective the container is isolated from the OS and other applications/services on the same server.

    Previously I had to maintain a bunch of virtual machines that replicated client environments for development and testing purposes. Those virtual machines have been replaced by simple text files that outline the configuration for each of the environments. Development and production environments are identical and can be replicated on my laptop in seconds - Docker makes life easier.


  • Registered Users Posts: 51 ✭✭happycoach


    Talisman wrote: »
    Docker was developed as an internal tool by a PAAS provider called dotCloud to spin up instances of web applications without concerns for the underlying architecture.

    Here's a 5 minute clip of the first public demonstration which explains its origin.


    Docker is better than creating a VM because the Docker container uses the minimum resources required for the application instance. From a security perspective the container is isolated from the OS and other applications/services on the same server.

    Previously I had to maintain a bunch of virtual machines that replicated client environments for development and testing purposes. Those virtual machines have been replaced by simple text files that outline the configuration for each of the environments. Development and production environments are identical and can be replicated on my laptop in seconds - Docker makes life easier.

    Excellent video. When will docker be ready for deploying your software into live/production? Or are some people already doing this?


  • Registered Users Posts: 508 ✭✭✭purpleisafruit


    happycoach wrote: »
    Excellent video. When will docker be ready for deploying your software into live/production? Or are some people already doing this?
    It's already used in production by many businesses. Company I work for use it extensively and it's deployed in prod to many of the biggest names in the world.
    I've contributed to the Open Source project. It's fantastic for dev as it removes all the niggles of "doesn't work on my machine", simply package up an image with all of it's dependencies and anyone can run it.


  • Advertisement
  • Registered Users Posts: 51 ✭✭happycoach


    It's already used in production by many businesses. Company I work for use it extensively and it's deployed in prod to many of the biggest names in the world.
    I've contributed to the Open Source project. It's fantastic for dev as it removes all the niggles of "doesn't work on my machine", simply package up an image with all of it's dependencies and anyone can run it.

    Excellent. Thanks for the info. Any helpful resources you came across, would really appreciate if you shared them.


  • Closed Accounts Posts: 6,075 ✭✭✭IamtheWalrus


    It's already used in production by many businesses. Company I work for use it extensively and it's deployed in prod to many of the biggest names in the world.
    I've contributed to the Open Source project. It's fantastic for dev as it removes all the niggles of "doesn't work on my machine", simply package up an image with all of it's dependencies and anyone can run it.

    What does the image package look like? Is is an ear file?

    Am I write in saying that one creates a Docker images (which includes my 'deployed' app) and I could send that image file to another person and they could run it on any machine?


  • Closed Accounts Posts: 246 ✭✭Utdfan20titles


    Hard to understand docker language they curse a lot


  • Moderators, Society & Culture Moderators Posts: 9,671 Mod ✭✭✭✭Manach


    At work, they are beginning to use Docker to support legacy software - eg some legacy code needs a specific set of interfaces only present on an older OS. This can be established in a Docker specific environment, ie a walled area, while the rest of the system uses a modern OS. Frankly I'm still studying up on the concept myself and in this case would reckon a code re-write would be better. But overall Docker looks interesting.


  • Closed Accounts Posts: 6,075 ✭✭✭IamtheWalrus


    Hard to understand docker language they curse a lot

    latest?cb=20140916012909


  • Advertisement
  • Registered Users Posts: 4,758 ✭✭✭cython


    What does the image package look like? Is is an ear file?
    Docker images probably have more in common with a VM image than an ear file, as they contain/support OS components, etc. rather than being a package that assumes deployability on a platform.
    Am I write in saying that one creates a Docker images (which includes my 'deployed' app) and I could send that image file to another person and they could run it on any machine?

    Pretty much, you can build and deploy your image to a container in UAT and once you are happy that it works, the same image can be promoted to another container in Prod, so in the same way the entire image could be sent to another person as well, assuming they have docker, etc. set up to run it.


  • Closed Accounts Posts: 6,075 ✭✭✭IamtheWalrus


    cython wrote: »
    Docker images probably have more in common with a VM image than an ear file, as they contain/support OS components, etc. rather than being a package that assumes deployability on a platform.



    Pretty much, you can build and deploy your image to a container in UAT and once you are happy that it works, the same image can be promoted to another container in Prod, so in the same way the entire image could be sent to another person as well, assuming they have docker, etc. set up to run it.

    So the person I give my image to needs to have docker installed on their machine? Docker doesn't install itself and start servicing requests to the contained app?


  • Registered Users Posts: 4,758 ✭✭✭cython


    So the person I give my image to needs to have docker installed on their machine? Docker doesn't install itself and start servicing requests to the contained app?

    Correct, at least as far as my understanding of it goes, though there may be other means to achieve that too. Realistically is is not an installer package, nor is it an RPM, or a java deployable. A container functions much more closely to a virtual machine than anything else that I can draw an analog with, though typically it's more lightweight, and can be configured with the bare minimum dependencies required for an application.

    While the use cases for this may seem limited (though as mentioned it can be useful for maintaining templates of different tech stacks, e.g. specific OS, app server, etc. that a developer can pull down locally), this actually becomes incredibly useful in the world of stateless microservice applications. E.g. if you have such an app packaged in a docker image, then you can deploy 1 or 100 instances (containers) running this application allowing very quick scaling, and elastic capacity. Docker in itself doesn't really do much of the legwork here, but other tools such as Kubernetes and Openshift can be used with it for large scale orchestration in this manner. They, however, are a whole other level and I'd suggest learning to walk with docker first, but keeping them in mind as an eventual means to facilitate large-scale deployments to the likes of AWS, if that is an option.


Advertisement