Containers
- For long time, big web-scale organizations like Google have been using container technologies to overcome the shortcomings of VM Model
- Containers on the single host share the host OS
Linux Containers
- Containers in Linux are supported natively but creating containers remained complex and out of reach for most of the organizations.
- Docker came along & simplified the container creation & management.
- Example:
- BSD Jails & Solaris Zones are some other well known examples of unix type container technologies
Windows Containters
- Over the past few years, Microsoft Corp. has worked extreemly hard to bring Docker and container technologies to the windows platform
- Windows Containers are available on the Windows Desktop & Windows Server platforms (Certain Versions of Windows 10 and later and Windows Server 2016 & Later)
- The core windows kernel has been changed to implement containers & this is collectively referred as Windows Containers
The Docker Technology
- There are three things to be aware of when we are referring to docker as a technology
- The runtime
- The daemon/Engine
- The orchestrator
- To interact with docker we have the docker client
-
Workflow of Container Creation
- When the user executes the command to create container
docker container run -d -P httpd
on the newly installed docker host - docker client forwards the request to docker daemon
- docker daemon checks for the presence of images in the local repository. In this case the local images didn’t have the image
httpd
- Docker forwards the request to the configured registry. The default registry that is configred is docker hub Refer Here. The image is searched in the configured registry and if not found error is shown to the user
- If the image is found then it is downloaded from docker registry to local images repository
- Using the docker image the container is created (resources will be allocated)
- Now lets see what happens the user executed the command
docker container run -d -P httpd
again - docker client forwards the request to docker daemon
- docker daemon checks for the presence of image httpd in local registry & since it is already downloaded in the 4 step above.
- docker daemon creates a container with the existing image.
Responsibility of a DevOps Engineer
- As per the understanding of docker which we have so far, We need to create containers which run the applications developed by our organization. The first responsibility of DevOps Engineer to
- Create a Docker Image which has your application preconfigured.
- Manage multiple versions of your Docker Image
- Store the Images in Organization approved Registry.
Docker Playground
- For whatever we have learned so far and for the next few classes, let use Docker Playground Refer Here
- To work with Docker playground, you need to have an account in Docker Hub. Create an account in Docker hub Refer Here
- Using Playground
- Login with DockerHub credentials
- Start the Playground
- Now add an instance to get the linux machine where docker is already installed and ready to be used
- Now to work with docker you can use the terminal
- If you want a full screen terminal view
ALT + ENTER
and to comeback to normal stateALT + ENTER
Commands of Docker
- Initially running docker needs commands
- use –help
- Use any cheatsheet from the web Refer Here Refer Here