Software containerization with Docker
Díaz Alonso, Rubén Cayetano (2017)
Díaz Alonso, Rubén Cayetano
Turun ammattikorkeakoulu
2017
All rights reserved
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-201703012839
https://urn.fi/URN:NBN:fi:amk-201703012839
Tiivistelmä
The main purpose of this thesis was to introduce software containerization, a type of OS level virtualization which has become very popular among organizations and individuals, and its most used implementation, Docker.
Docker fulfills the needs of developers who need to provide their software to other users in an environment where all the required dependencies and settings are already present, giving every user the possibility to run the application in the same environment.
Docker also implements a minimum level of isolation (process sandboxing) from other processes being run in the machine hosting the Docker daemon using Linux’s kernel features. The overhead of Docker containers is, in most cases, negligible, and it can be an alternative, under some circumstances, to traditional virtual machines.
While software containerization is not new and in fact there are multiple implementations of this technology in the different operating systems available in the market, Docker as a platform has popularized containerization.
The learning curve of Docker is not steep, which translates into a handful of vendors offering resources for the different users of Docker and a considerable user base.
This thesis shows the most important concepts of containerization and what advantages Docker as an implementation offers in addition to the technology, how it compares with virtual machines, as well as instructions for setting it up and using it including two practical cases: a public-facing Python 3 application and a WordPress LAMP stack using Docker Compose.
Docker fulfills the needs of developers who need to provide their software to other users in an environment where all the required dependencies and settings are already present, giving every user the possibility to run the application in the same environment.
Docker also implements a minimum level of isolation (process sandboxing) from other processes being run in the machine hosting the Docker daemon using Linux’s kernel features. The overhead of Docker containers is, in most cases, negligible, and it can be an alternative, under some circumstances, to traditional virtual machines.
While software containerization is not new and in fact there are multiple implementations of this technology in the different operating systems available in the market, Docker as a platform has popularized containerization.
The learning curve of Docker is not steep, which translates into a handful of vendors offering resources for the different users of Docker and a considerable user base.
This thesis shows the most important concepts of containerization and what advantages Docker as an implementation offers in addition to the technology, how it compares with virtual machines, as well as instructions for setting it up and using it including two practical cases: a public-facing Python 3 application and a WordPress LAMP stack using Docker Compose.