what is docker ?
What are containers ?
Why use containers ?
Docker container image
what is Dockerfile
what is Dockercompose
what is Dockerswarm
Define Docker Engine
Features of Docker
Docker is a tool that allows developers, sys-admins etc. to easily deploy their applications in a sandbox (called containers) to run on the host operating system i.e. Linux. The key benefit of Docker is that it allows users to package an application with all of its dependencies into a standardized unit for software development. Unlike virtual machines, containers do not have high overhead and hence enable more efficient usage of the underlying system and resources.
Docker is a powerful tool used for developing, packaging, and deploying applications efficiently
Dockeris a container management service.
Dockeris quickly shipping, testing, and deploying code. So that it reduces your delay between writing code and running it in production.
Docker is a software development framework that allows you to package and run apps inside virtual machines on a server. It’s often used to create and test applications before deploying them on a real, physical server. This allows organizations to test and deploy their applications quickly and with minimal resources. Docker also makes it easy to package and update apps on any server, regardless of its hardware configuration
Features of Docker
- Docker reduces the size of development by providing a smaller part of the OS via containers.
- It is easier to work on the same project by different teams with the help of Containers.
- Docker containers can be deployed anywhere, on any physical, or virtual machines and on the cloud.
Docker containers are lightweight so, it becomes east to scale them
Advantages of Docker
Docker uses less memory.
The full operating system is not required to run an application.
Containers run faster than the other Virtual Machines.
It is lightweight.
It allows us to use a remote repository to share your containers with other teams.
To reduce the risks, it uses dependencies
Disadvantages of Docker
Complexity will increase due to layering.
It is difficult to manage a large number of containers.
For an application that needs better graphics, Docker is not suitable for it.
Cross-platform compatibility is not allowed
A Docker container is a lightweight and executable package of software. It includes everything used to run an application, code, libraries, and dependencies. You don’t need to allocate any memory for the application. It can automatically generate space according to the requirements.
The industry standard today is to use Virtual Machines (VMs) to run software applications. VMs run applications inside a guest Operating System, which runs on virtual hardware powered by the server’s host OS.
You can create self-contained environments known as containers. That can run consistently on different platforms
VMs are great at providing full process isolation for applications: there are very few ways a problem in the host operating system can affect the software running in the guest operating system, and vice-versa. But this isolation comes at great cost — the computational overhead spent virtualizing hardware for a guest OS to use is substantial.
Containers take a different approach: by leveraging the low-level mechanics of the host operating system, containers provide most of the isolation of virtual machines at a fraction of the computing power.
A container is an isolated environment for your code. This means that a container has no knowledge of your operating system, or your files. It runs on the environment provided to you by Docker Desktop. Containers have everything that your code needs in order to run, down to a base operating system
A container is a standard unit of software that packages up code and all its dependencies so the application runs quickly and reliably from one computing environment to another.
Containers offer a logical packaging mechanism in which applications can be abstracted from the environment in which they actually run. This decoupling allows container-based applications to be deployed easily and consistently, regardless of whether the target environment is a private data center, the public cloud, or even a developer’s personal laptop. This gives developers the ability to create predictable environments that are isolated from the rest of the applications and can be run anywhere.
From an operations standpoint, apart from portability containers also give more granular control over resources giving your infrastructure improved efficiency which can result in better utilization of your compute resources.
A Docker container image is a lightweight, standalone, executable package of software that includes everything needed to run an application: code, runtime, system tools, system libraries and settings
Docker image is an executable package of software that includes everything needed to run an application
- Docker images are immutable, they can't be changed.
- Docker images can be duplicated, shared or deleted.
- Docker image also act as the starting point when using Docker. 5. Docker image contains appication code, libraries, tools, dependencies and other files needed to make an application run. 6. Docker images have multiple layers, each one originates from the previous layer but is different from it.
- Docker images are a reusable asset deployed o any host.
- Docker images has many layers such as base image, parent image, layers, container layer, docker manifest.
- Docker image informs how a container should instantiate which software components will run and how 10.Docker image informs how a container should determining which software components will run and how
Docker engine allows you to create and manage docker containers, docker images, docker hub, docker desktop