Docker is a software platform for building applications based on. container-A small, lightweight execution environment that shares an operating system kernel, but otherwise runs separately from each other. Containers have been used on Linux and Unix systems for some time, but Docker, an open source project launched in 2013, allows developers to package software so that it can be built once and run anywhere. It contributed to the spread of technology.
A brief history of Docker
Founded in 2008 by Solomon Haix in Paris as DotCloud, what is now known as Docker Platform as a Service (PaaS) Before Pivot in 2013 Focus on democratizing the underlying software container on which the platform was running.
Hykes first demoed Docker At PyCon in March 2013, he explained that Docker was created as developers continued to seek the underlying technology to power the DotCloud platform. “We always thought it was cool to say,’Yes, this is our low-level work.’ Now you can run your Linux container with us, do whatever you want and build your platform. That’s what we do. “
And with the birth of Docker, open source projects attracted the attention of developers, the attention of prominent technology providers such as Microsoft, IBM, Red Hat, and venture capitalists who invest millions of dollars in innovative companies. I did. Start-up. The container revolution has begun.
What is a container?
As Hykes explained in PyCon’s talk, the container is “a self-contained software unit that can deliver from server over there to server over there, from laptop to EC2, to a huge bare metal server. Separated at the process level, It’s the same way because it has its own file system. “
By simplifying this process, Docker quickly approached the de facto industry standard for containers. With Docker, developers use a set of reusable images to deploy, duplicate, move, and back up their workloads in one streamlined way, porting their workloads more than before. You can increase your sexuality and flexibility.
In the virtual machine (VM) world, you can do this by keeping your applications separate while running on the same hardware, but in that world each VM needs its own operating system. This means that VMs are usually large, slow to boot, and difficult to move. It’s around, and maintenance and upgrades are a hassle. A clear change from the VM era was that containers shared the underlying OS kernel, separated the execution environment, and provided developers with lightweight and fast options.
Docker: Component parts
Docker has accepted software developers because it has found a new way to package the tools needed to build and launch containers in a more streamlined and simplified way than before. Docker is decomposed into its component parts and consists of Dockerfile, container image, Docker execution utility, Docker Hub, Docker Engine, Docker Compose, and Docker Desktop.
Dockerfile. Each Docker container starts with a Dockerfile. This text file provides a set of steps for building a Docker image, including the operating system, language, environment variables, file location, network port, and other components that need to be run.
Docker image. Like a snapshot of the VM world, a Docker image is a portable, read-only executable that contains the steps to create a container and the specifications and methods of the software components on which the container runs.
Docker execution utility. Docker’s execution utility is a command to start a container. Each container is an instance of an image, and you can run multiple instances of the same image at the same time.
Docker Hub. Docker Hub is a repository where you can store, share, and manage container images. Think of it as Docker’s own version of GitHub. However, especially for containers.
Docker engine. Docker Engine is the core of Docker. Creating and running containers is the underlying client-server technology. Docker Engine includes a long-running daemon process called dockerd for managing containers, an API that allows programs to communicate with the Docker daemon, and a command line interface.
Docker Compose. Docker Compose is a command line tool that uses YAML files to define and run multi-container Docker applications. This allows you to create, start, stop, and rebuild all services from your configuration and view the status and log output of all running services.
Docker desktop. All of these component parts are wrapped in Docker desktop applications, providing a user-friendly way to build and share containerized applications and microservices.
Benefits of Docker
Docker containers provide a way to build applications that are easier to assemble, maintain, and move than previously allowed. This offers software developers some benefits.
Docker containers are minimal and portable. With Docker, you can keep your application and its environment clean and minimal by separating the application and its environment. This provides finer control and portability.
Docker containers allow for configurability. Containers allow developers to easily configure building blocks of an application into modular units with easily replaceable parts. This can speed up development cycles, feature releases, and bug fixes.
Docker containers facilitate orchestration and scaling. The lightweight nature of containers allows developers to launch multiple containers to improve service scaling. Clusters of these containers need to be orchestrated. Kubernetes Usually comes in.
Disadvantages of Docker
Containers solve so many problems, but not all developer illnesses.
Docker containers are not virtual machines. Unlike virtual machines, containers use a controlled portion of the host operating system’s resources. That is, the elements are not as tightly separated as they are on the VM.
Docker containers do not provide bare metal speed. Containers are significantly lighter and closer to metal than virtual machines, but with performance overhead. If your workload requires bare metal speed, the container will bring you closer, but not that far.
Docker containers are stateless and immutable. The container is launched and run from an image that describes its contents. The image is immutable by default. Once created, it does not change. However, the container instance is temporary. Once deleted from system memory, it will be permanently lost. If you want a container to persist state between sessions, like a virtual machine, you need to design its persistence.
What is Docker today?
Container usage is Cloud-native development method It will be the mainstream model for building and running software, but Docker is currently just one part of that puzzle.
Docker has become mainstream by making it easy to move application code and all its dependencies from a developer’s laptop to a server. However, the rise of containers has shifted the way applications are built from monolithic stacks to networks of microservices. Soon many users needed a way to coordinate and manage groups of containers on a large scale.
Born from Google, Kubernetes Open source projects quickly emerged as the best way to do this, replacing Docker’s own attempt to solve this problem with the Swarm orchestra (“rip). Docker eventually sold its enterprise business to Mirantis in 2019, and Mirantis absorbed Docker Enterprise into the Mirantis Kubernetes Engine amid growing funding issues.
The Docker wreckage, including the original open source Docker Engine container runtime, Docker Hub image repository, and Docker Desktop applications, survives under the leadership of veteran Scott Johnston, who has seven years of experience, and is centered around its core business direction. I’m trying to change. Software developer customer base.
Copyright © 2021 IDG Communications, Inc.
What is Docker?Sparks of the container revolution
Source link What is Docker?Sparks of the container revolution