What Is Docker?

Dede Kurniawan
3 min readMar 7, 2022

What is Docker?

According to wikipedia Docker is a software as a service (PaaS — Platform as a Service), which applies OS level virtualization to run software in a package called Container. Software that runs Containers are called Docker Engine.

The concept used Docker is similar to Virtual Management System (Vms). Docker is an alternative to this solution with the use of a small operating system and only essential system components are used for virtualization. The goal is that the size of the OS virtualization container is not large.

Why Docker?

Docker can help the software development and deployment process, so that the process becomes easier & faster. The purpose of easy here is to create a Docker developer container, you only need to install Docker Engine on the Operating System, and create a Dockerfile as a configuration for creating a Docker image as the source of the software being developed. Then run the software as a container.

With Docker there is no need to worry if there is a software dependency on the operating system library because with the configuration that has been made, the image or container of a software can be run on a different Operating System. This is very helpful for developers in hosting their software on various Operating Systems.

Advantages of Docker

  • Simple Configuration:
    Docker has no overhead so developers can run the application under test without additional configuration.
  • Multi-Tenant:
    With Docker’s ability to support the creation of Multi-Tenant structured applications such as Software As Service (SaaS). With docker you can create more than 1 environment without rewriting the main application source code.
  • Private Network:
    In creating a docker configuration using the Docker Compose tool, Docker can create certain private networks that can only access between stacks or containers that are run and cannot be accessed via the internet. so setting up a private network for Docker security needs is very helpful.
  • Simple Command Tool:
    The command line tools in Docker are simple and easy to understand, without the need to understand too many important components you can access directly via the Docker command line, monitor containers, manage networks, manage confidential configurations, and many other things.
  • Official Documentation:
    In a Platform As a Service, Documentation is very important Docker, Inc manage well the documentation of Docker of each version so that developer can easily use Docker according to Documentation that is always up-to-date.
  • Manage Resources & Replication:
    Docker Swarm
    one of the Docker tools or libraries can support the feature of managing limitations and resource requests for each container. Which can be configured along with the docker configuration. Docker Swarm is a Container Orchestration, more or less the same as Kubernetes.

Things You Need to Know in Docker

  • Images:
    Source code in the files that support a software.
  • Container:
    A container for running and running software. Includes code, runtime, system tools, and configuration.
  • Client:
    The location where the user can use the Docker command line feature.
  • Engine REST API:
    Components to interact with Daemon. And can be accessed via HTTP.
  • Daemons:
    Process Management of Images, Container, Network and Storage Volume. Daemon receives commands from Engine REST API and processes them.
  • Host:
    Components that provide an environment for running software. Host is responsible for receiving orders given by Client.
  • Registration:
    Image storage. The registry provided by Docker, Inc is Docker Hub, but there are many Docker Registry that can be used besides Docker Hub.
  • Hub:
    Docker, Inc
    services provided to store and share Images.

Conclusion

Docker is a software platform to assist developers in developing and deploying new software. As a developer, it is very helpful for me to have Docker in creating and deploying the applications that I make.

In my experience as a developer before using Docker when creating or deploying an Application to the Server it will require more effort and it will be difficult to monitor the Application that is hosted directly on the server. And when the application has a different environment, an error occurs that you don’t want.

References

--

--