Containers.
Container Registries.
Container Orchestration.
Docker.
Kubernetes.
OpenShift.
Istio
A container is a standard unit of software that encapsulates everything that programmers need to build, ship, and run applications.
Why uses Containers:
Isolation and Allocation.
Server Utilization
Provisioning and Costs.
Portability
Resiliency.
Scalability.
Automation.
Characteristics:
Virtualizes the operating system.
A container is light-weight, fast, isolated, portable, and secure.
Require less memory.
Binaries, libraries within container enable apps to run.
One machines can host multiple containers.
Challenges:
Security impact.
Difficult to manage.
Complex to migrate legacy projects to container technology.
Difficult to right-size containers for specific scenarios.
Container Vendors:
Docker.
Podman.
LXC.
Vagrant.
Is an open platform, or engine, where programmers can develop, ship and run applications.
Written in Go Programming language.
Uses the namespaces technology to provide an isolated workspace called "container".
Consistent and isolated environments.
Fast development.
Repeatability and automation.
Support Agile and CI/CD Devops practices.
Versioning for easy testing. rollbacks, and redeployments.
Docker container creation process:
Create a Dockerfile.
Use the Dockerfile to create a container image.
Use the container image to create a running container.
Use a Dockerfile to create a running container:
Dockerfile has the commands FROM and CMD.
FROM: Defines the base image.
CMD: Prints the words "Hello World!" on the terminal.
Ex: FROM alpine CMD ["echo", "Hello world!"]
Create a container image using the build command:
Docker Images: $ docker images
Create the container using the run command:
To verify the details of the container created, run the docker ps -a command:
Docker commands: