Wednesday, July 8, 2020

Docker Architecture

Docker Architecture Docker Architecture: Why is it important? Back Home Categories Online Courses Mock Interviews Webinars NEW Community Write for Us Categories Artificial Intelligence AI vs Machine Learning vs Deep LearningMachine Learning AlgorithmsArtificial Intelligence TutorialWhat is Deep LearningDeep Learning TutorialInstall TensorFlowDeep Learning with PythonBackpropagationTensorFlow TutorialConvolutional Neural Network TutorialVIEW ALL BI and Visualization What is TableauTableau TutorialTableau Interview QuestionsWhat is InformaticaInformatica Interview QuestionsPower BI TutorialPower BI Interview QuestionsOLTP vs OLAPQlikView TutorialAdvanced Excel Formulas TutorialVIEW ALL Big Data What is HadoopHadoop ArchitectureHadoop TutorialHadoop Interview QuestionsHadoop EcosystemData Science vs Big Data vs Data AnalyticsWhat is Big DataMapReduce TutorialPig TutorialSpark TutorialSpark Interview QuestionsBig Data TutorialHive TutorialVIEW ALL Blockchain Blockchain TutorialWhat is BlockchainHyperledger FabricWhat Is EthereumEthereum TutorialB lockchain ApplicationsSolidity TutorialBlockchain ProgrammingHow Blockchain WorksVIEW ALL Cloud Computing What is AWSAWS TutorialAWS CertificationAzure Interview QuestionsAzure TutorialWhat Is Cloud ComputingWhat Is SalesforceIoT TutorialSalesforce TutorialSalesforce Interview QuestionsVIEW ALL Cyber Security Cloud SecurityWhat is CryptographyNmap TutorialSQL Injection AttacksHow To Install Kali LinuxHow to become an Ethical Hacker?Footprinting in Ethical HackingNetwork Scanning for Ethical HackingARP SpoofingApplication SecurityVIEW ALL Data Science Python Pandas TutorialWhat is Machine LearningMachine Learning TutorialMachine Learning ProjectsMachine Learning Interview QuestionsWhat Is Data ScienceSAS TutorialR TutorialData Science ProjectsHow to become a data scientistData Science Interview QuestionsData Scientist SalaryVIEW ALL Data Warehousing and ETL What is Data WarehouseDimension Table in Data WarehousingData Warehousing Interview QuestionsData warehouse architectureTalend T utorialTalend ETL ToolTalend Interview QuestionsFact Table and its TypesInformatica TransformationsInformatica TutorialVIEW ALL Databases What is MySQLMySQL Data TypesSQL JoinsSQL Data TypesWhat is MongoDBMongoDB Interview QuestionsMySQL TutorialSQL Interview QuestionsSQL CommandsMySQL Interview QuestionsVIEW ALL DevOps What is DevOpsDevOps vs AgileDevOps ToolsDevOps TutorialHow To Become A DevOps EngineerDevOps Interview QuestionsWhat Is DockerDocker TutorialDocker Interview QuestionsWhat Is ChefWhat Is KubernetesKubernetes TutorialVIEW ALL Front End Web Development What is JavaScript â€" All You Need To Know About JavaScriptJavaScript TutorialJavaScript Interview QuestionsJavaScript FrameworksAngular TutorialAngular Interview QuestionsWhat is REST API?React TutorialReact vs AngularjQuery TutorialNode TutorialReact Interview QuestionsVIEW ALL Mobile Development Android TutorialAndroid Interview QuestionsAndroid ArchitectureAndroid SQLite DatabaseProgramming A Beginners Guide To De vOps DevOps Tutorial For Beginners What is Git â€" A Complete Git Tutorial For Beginners What is Jenkins? Continuous Integration With Jenkins What is Docker â€" DevOps Tool For Containerization Puppet Tutorial â€" DevOps Tool For Configuration Management Ansible Tutorial For Beginners â€" Ansible Playbook Top DevOps Interview Questions And Answers DevOps Topics CoveredDevOps (73 Blogs)Mastering Git and GitHub (9 Blogs)Docker (8 Blogs)DevOps Engineer Masters Program (4 Blogs)SEE MORE Docker Architecture: Why is it important? Last updated on Nov 26,2019 6.2K Views Arvind Bookmark Become a Certified Professional Many of us believe that Docker is an integral part of DevOps. So behind this incredible tool, there has to be an amazing architecture. In this blog, I will be covering everything that you must know about the Docker architecture. These are the points that I will be discussing here:Traditional Virtualization vs DockerDockers WorkflowDocker ArchitectureDockers ClientDocker HostDocker ObjectsDockers RegistryTraditional Virtualization Vs DockerWhat is a VM (Virtual Machine)?A VM is a virtual server that emulates a hardware server. A virtual machine relies on the systems physical hardware to emulate the exact same environment in which you install your applications. Depending on your use case, you can use a system virtual machine (that runs an entire OS as a process, allowing you to substitute a real machine for a virtual machine), or process virtual machines that let you execute computer applications alone in the virtual environment.Earlier, we used to create virtual machines, and each VM had an OS which took a lot of space and made it heavy.What is Docker?Docker is an open-source project that offers a software development solution known as containers. To understand Docker, you need to know what containers are. According to Docker, a container is a lightweight, stand-alone, executable package of a piece of software that includes everything n eeded to run it.Containers are platform-independent and hence Docker can run across both Windows and Linux-based platforms. In fact, Docker can also be run within a virtual machine if there arises a need to do so. The main purpose of Docker is that it lets you run microservice applications in a distributed architecture.When compared to Virtual machines, the Docker platform moves up the abstraction of resources from the hardware level to the Operating System level. This allows for the realization of the various benefits of Containers e.g. application portability, infrastructure separation, and self-contained microservices. In other words, while Virtual Machines abstract the entire hardware server, Containers abstract the Operating System kernel. This is a whole different approach to virtualization and results in a much faster and more lightweight instances.Dockers WorkflowFirst, let us look take a look at Docker Engine and its components so we have a basic idea of how the system work s. Docker Engine allows you to develop, assemble, ship, and run applications using the following components:Docker Daemon:Apersistent background process that manages Docker images, containers, networks, and storage volumes. The Docker daemon constantly listens for Docker API requests and processes them.Docker Engine REST API: An API is used by applications to interact with the Docker daemon. It can be accessed by an HTTP client.Docker CLI: A command-line interface client for interacting with the Docker daemon. It significantly simplifies how you manage container instances and is one of the key reasons why developers love using Docker.At first, Docker client talks to the Docker daemon, which performs the heavy lifting of the building, running, as well as distributing our Docker containers. Fundamentally, both the Docker client and daemon can run on the same system. We can also connect a Docker client to a remote Docker daemon. In addition, by using a REST API, the Docker client and d aemon, communicate, over UNIX sockets or a network interface.Docker ArchitectureThe architecture of Docker uses a client-server model and consists of the Dockers Client, Docker Host, Network and Storage components, and the Docker Registry/Hub. Lets look at each of these in some detail.Dockers ClientDocker users can interact with Docker through a client. When any docker commands runs, the client sends them to dockerd daemon, which carries them out. Docker API is used by Docker commands. It is possible for Docker client to communicate with more than one daemon.Docker HostThe Docker host provides a complete environment to execute and run applications. It comprises of the Docker daemon, Images, Containers, Networks, and Storage. As previously mentioned, the daemon is responsible for all container-related actions and receives commands via the CLI or the REST API. It can also communicate with other daemons to manage its services. Docker Objects1. ImagesImages are nothing but a read-only b inary template that can build containers. They also contain metadata that describe the containers capabilities and needs. Images are used to store and ship applications. An image can be used on its own to build a container or customized to add additional elements to extend the current configuration. You can share the container images across teams within an enterprise with the help of a private container registry, or share it with the world using a public registry like Docker Hub. Images are the core element of the Docker experience as they enable collaboration between developers in a way that was not possible before2. ContainersContainers are sort of encapsulated environments in which you run applications. Container is defined by the image and any additional configuration options provided on starting the container, including and not limited to the network connections and storage options. Containers only have access to resources that are defined in the image, unless additional access is defined when building the image into a container.You can also create a new image based on the current state of a container. Since containers are much smaller than VMs, they can be spun in a matter of seconds, and result in much better server density3. NetworksDocker networking is a passage through which all the isolated container communicate. There are mainly five network drivers in docker:Bridge: It is the default network driver for a container. You use this network when your application is running on standalone containers, i.e. multiple containers communicating with the same docker host.Host: This driver removes the network isolation between docker containers and docker host. You can use it when you dont need any network isolation between host and container.Overlay: This network enables swarm services to communicate with each other. You use it when you want the containers to run on different Docker hosts or when you want to form swarm services by multiple applications.None: Th is driver disables all the networking.macvlan: This driver assigns mac address to containers to make them look like physical devices. It routes the traffic between containers through their mac addresses. You use this network when you want the containers to look like a physical device, for example, while migrating a VM setup.4. StorageYou can store data within the writable layer of a container but it requires a storage driver. Being non-persistent, it perishes whenever the container is not running. Moreover, it is not easy to transfer this data. With respect to persistent storage, Docker offers four options:Data Volumes: They provide the ability to create persistent storage, with the ability to rename volumes, list volumes, and also list the container that is associated with the volume. Data Volumes are placed on the host file system, outside the containers copy on write mechanism and are fairly efficient.Volume Container: It is an alternative approach wherein a dedicated container h osts a volume and to mount that volume to other containers. In this case, the volume container is independent of the application container and therefore you can share it across more than one container.Directory Mounts: Another option is to mount a hosts local directory into a container. In the previously mentioned cases, the volumes would have to be within the Docker volumes folder, whereas when it comes to Directory Mounts any directory on the Host machine can be used as a source for the volume.Storage Plugins: Storage Plugins provide the ability to connect to external storage platforms. These plugins map storage from the host to an external source like a storage array or an appliance. You can see a list of storage plugins on Dockers Plugin page.Dockers Registry Docker registries are services that provide locations from where you can store and download images. In other words, a Docker registry contains Docker repositories that host one or more Docker Images. Public Registries inclu de two components namely the Docker Hub and Docker Cloud. You can also use Private Registries. The most common commands when working with registries include: docker push, docker pull, docker runNow that you have understood the Docker Architecture, check out this DevOps trainingby Edureka,a trusted online learning companywith a network of more than250,000satisfied learnersspread acrossthe globe. The Edureka DevOps Certification Training coursehelps learners to understand what is DevOps and gain expertise in various DevOps processes and tools such asPuppet, Jenkins, Nagios, Ansible, Chef, Saltstack and GIT for automating multiple steps in SDLC.Got a question for us? Please mention it in the comments section of this Docker Architecture and we will get back to youRecommended videos for you What is Docker DevOps Tool For Containerization Watch Now What is Jenkins? Continuous Integration With Jenkins Watch Now DevOps Tutorial For Beginners Watch Now What is Git A Complete Git Tutorial F or Beginners Watch Now Top DevOps Interview Questions And Answers Watch Now 5 Best Practices In DevOps Culture Watch Now Continuous Integration With Jenkins Watch Now Puppet Tutorial DevOps Tool For Configuration Management Watch Now What is DevOps A Beginners Guide To DevOps Watch Now Devops : Automate Your Infrastructure With Puppet Watch Now DevOps is Going to Replace SDLC! Learn Why Watch Now DevOps-Redefining your IT Strategy Watch Now Ansible Tutorial For Beginners Ansible Playbook Watch NowRecommended blogs for you Understanding DevOps Tools Development, Testing Deployment Technologies Involved In DevOps Read Article Who Is A DevOps Engineer? DevOps Engineer Roles And Responsibilities Read Article CI CD Pipeline Learn how to Setup a CI CD Pipeline from Scratch Read Article Setting Up Development Environment Using Vagrant Read Article Kubernetes Dashboard Installation and Views Read Article Continuous Delivery vs Continuous Deployment Read Article Docker Architecture: W hy is it important? Read Article AWS Certified DevOps Engineer : A Perfect Amalgamation Read Article What is Jenkins? | Jenkins For Continuous Integration | Edureka Read Article Install Docker Docker Installation On Ubuntu And CentOS Read Article How to Visualize Kubernetes Cluster Events in real-time Read Article How To Set Kubernetes Ingress Controller on AWS Read Article Maven Tutorial: All You Need To Know To Get Started Read Article Top Puppet Interview Questions For 2020 All You Need To Know About Puppet Read Article Continuous Deployment A Comprehensive Guide With An Example Read Article Pokemon Go â€" a perfect use-case of DevOps principles Read Article Install Chef 6 Simple Steps for Installing Chef On CentOS Read Article How to use Puppet Modules for IT Infrastructure Automation? Read Article DevOps in various domains How DevOps solves the problem? Read Article What are the common Git mistakes and how to fix them? Read Article Comments 0 Comments Trending Courses in DevOps DevOps Certification Training72k Enrolled LearnersWeekend/WeekdayLive Class Reviews 5 (28700)

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.