Docker introduction.
References : The Docker Book : Containerization is the new virtualization
http://www.amazon.in/Docker-Book-Containerization-new-virtualization-ebook/dp/B00LRROTI4/ref=sr_1_1?ie=UTF8&qid=1422003961&sr=8-1&keywords=docker+book
This presentation gives a brief understanding of docker architecture, explains what docker is not, followed by a description of basic commands and explains CD/CI as an application of docker.
Docker introduction.
References : The Docker Book : Containerization is the new virtualization
http://www.amazon.in/Docker-Book-Containerization-new-virtualization-ebook/dp/B00LRROTI4/ref=sr_1_1?ie=UTF8&qid=1422003961&sr=8-1&keywords=docker+book
This presentation gives a brief understanding of docker architecture, explains what docker is not, followed by a description of basic commands and explains CD/CI as an application of docker.
Docker is the world’s leading software container platform. Developers use Docker to eliminate “works on my machine” problems when collaborating on code with co-workers. Operators use Docker to run and manage apps side-by-side in isolated containers to get better compute density. Enterprises use Docker to build agile software delivery pipelines to ship new features faster, more securely and with confidence for both Linux and Windows Server apps.
Learn More: http://www.collabnix.com
docker : how to deploy Digital Experience in a container drinking a cup of co...Matteo Bisi
This was my session @ IconUK 2016. We was talking about docker and ibm and giving some tips to use it and build it your own container with ibm social collaboration software
Containers in depth – Understanding how containers work to better work with c...All Things Open
Presented by: Brent Laster
Presented at the All Things Open 2021
Raleigh, NC, USA
Raleigh Convention Center
Abstract: Containers are all the rage these days – from Docker to Kubernetes and everywhere in-between. But to get the most out of them it can be helpful to understand how containers are constructed, how they depend and interact with the operating system, and what the differences and interactions are between layers, images, and containers. Join R&D Director, Brent Laster as he does a quick, visual overview of how containers work and how applications such as Docker work with them.
Topics to be discussed include:
• What containers are and the benefits they provide
• How containers are constructed
• The differences between layers, images, and containers
• What does immutability really mean
• The core Linux functionalities that containers are based on • How containers reuse code
• The differences between containers and VMs
• What Docker really does
• The Open Container Initiative
• A good analogy for understanding all of this
My college ppt on topic Docker. Through this ppt, you will understand the following:- What is a container? What is Docker? Why its important for developers? and many more!
.docker : How to deploy Digital Experience in a container, drinking a cup of ...ICON UK EVENTS Limited
Matteo Bisi / Factor-y srl
Andrea Fontana / SOWRE SA
Docker is one of best technologies available on market to install and run and deploy application fastest , securely like never before. In this session you will see how to deploy a complete digital experience inside containers that will enable you to deploy a Portal drinking a cup of coffee. We will start from a deep overview of docker: what is docker, where you can find that, what is a container and why you should use container instead a complete Virtual Machine. After the overview we will enter inside how install IBM software inside a container using docker files that will run the setup using silent setup script. At last part we will talk about possible use of this configuration in real work scenario like staging or development environment or in WebSphere Portal farm setup.
Docker Kubernetes Istio
Understanding Docker and creating containers.
Container Orchestration based on Kubernetes
Blue Green Deployment, AB Testing, Canary Deployment, Traffic Rules based on Istio
Introduction to Docker and Monitoring with InfluxDataInfluxData
In this webinar, Gary Forgheti, Technical Alliance Engineer at Docker, and Gunnar Aasen, Partner Engineering, provide an introduction to Docker and InfluxData. From there, they will show you how to use the two together to setup and monitor your containers and microservices to properly manage your infrastructure and track key metrics (CPU, RAM, storage, network utilization), as well as the availability of your application endpoints.
Presentation about docker from Java User Group in Ostrava CZ (23th of November 2015). Presented by Martin Damovsky (@damovsky).
Demos are available at https://github.com/damovsky/jug-ostrava-docker
Container technology is shaping the future of software development and is causing a structural change in the cloud-computing world. Developers are embracing container technology and enterprises are adopting it at an explosive rate. Containers are portion of "IT" in technology as they're a very powerful tool which streamline your development and ops processes, save company's money & make life for developers much easier.
Docker is the world’s leading software container platform. Developers use Docker to eliminate “works on my machine” problems when collaborating on code with co-workers. Operators use Docker to run and manage apps side-by-side in isolated containers to get better compute density. Enterprises use Docker to build agile software delivery pipelines to ship new features faster, more securely and with confidence for both Linux and Windows Server apps.
Learn More: http://www.collabnix.com
docker : how to deploy Digital Experience in a container drinking a cup of co...Matteo Bisi
This was my session @ IconUK 2016. We was talking about docker and ibm and giving some tips to use it and build it your own container with ibm social collaboration software
Containers in depth – Understanding how containers work to better work with c...All Things Open
Presented by: Brent Laster
Presented at the All Things Open 2021
Raleigh, NC, USA
Raleigh Convention Center
Abstract: Containers are all the rage these days – from Docker to Kubernetes and everywhere in-between. But to get the most out of them it can be helpful to understand how containers are constructed, how they depend and interact with the operating system, and what the differences and interactions are between layers, images, and containers. Join R&D Director, Brent Laster as he does a quick, visual overview of how containers work and how applications such as Docker work with them.
Topics to be discussed include:
• What containers are and the benefits they provide
• How containers are constructed
• The differences between layers, images, and containers
• What does immutability really mean
• The core Linux functionalities that containers are based on • How containers reuse code
• The differences between containers and VMs
• What Docker really does
• The Open Container Initiative
• A good analogy for understanding all of this
My college ppt on topic Docker. Through this ppt, you will understand the following:- What is a container? What is Docker? Why its important for developers? and many more!
.docker : How to deploy Digital Experience in a container, drinking a cup of ...ICON UK EVENTS Limited
Matteo Bisi / Factor-y srl
Andrea Fontana / SOWRE SA
Docker is one of best technologies available on market to install and run and deploy application fastest , securely like never before. In this session you will see how to deploy a complete digital experience inside containers that will enable you to deploy a Portal drinking a cup of coffee. We will start from a deep overview of docker: what is docker, where you can find that, what is a container and why you should use container instead a complete Virtual Machine. After the overview we will enter inside how install IBM software inside a container using docker files that will run the setup using silent setup script. At last part we will talk about possible use of this configuration in real work scenario like staging or development environment or in WebSphere Portal farm setup.
Docker Kubernetes Istio
Understanding Docker and creating containers.
Container Orchestration based on Kubernetes
Blue Green Deployment, AB Testing, Canary Deployment, Traffic Rules based on Istio
Introduction to Docker and Monitoring with InfluxDataInfluxData
In this webinar, Gary Forgheti, Technical Alliance Engineer at Docker, and Gunnar Aasen, Partner Engineering, provide an introduction to Docker and InfluxData. From there, they will show you how to use the two together to setup and monitor your containers and microservices to properly manage your infrastructure and track key metrics (CPU, RAM, storage, network utilization), as well as the availability of your application endpoints.
Presentation about docker from Java User Group in Ostrava CZ (23th of November 2015). Presented by Martin Damovsky (@damovsky).
Demos are available at https://github.com/damovsky/jug-ostrava-docker
Container technology is shaping the future of software development and is causing a structural change in the cloud-computing world. Developers are embracing container technology and enterprises are adopting it at an explosive rate. Containers are portion of "IT" in technology as they're a very powerful tool which streamline your development and ops processes, save company's money & make life for developers much easier.
Similar to Containerization using docker and its applications (20)
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
2. 3
Why the buzz around Containers and
Docker?
•The software industry has changed
•Before:
• monolithic applications
• long development cycles
• single environment
• slowly scaling up
•Now:
• decoupled services
• fast, iterative improvements
• multiple environments
• quickly scaling out
3. 3
Deployment becomes very complex
•Many different stacks:
• languages
• frameworks
• Databases
•Many different targets:
• individual development environments
• pre-production, QA, staging...
• production: on prem, cloud, hybrid
9. 3
Results
•Dev-to-prod reduced from 9 months to 15 minutes (ING)
•Continuous integration job time reduced by more than 60% (BBC)
•Deploy 100 times a day instead of once a week (GILT)
•70% infrastructure consolidation (MetLife)
•60% infrastructure consolidation (Intesa Sanpaolo)
•14x application density; 60% of legacy datacenter migrated in 4 months (GE
Appliances)
•etc.
10. History and Multi-Dimensional Evolution of Computing
Development Process Application Architecture Deployment and Packaging Application Infrastructure
Waterfall Monolithic Physical Server Datacenter
Agile N-Tier Virtual Servers Hosted
DevOps Microservices Containers Cloud
11. Virtualization
http://www.edureka.co/devops
Virtualization means to create a virtual version of a device or resource, such as a storage device,
server, network, an OS, hardware, etc. where the framework divides the resource into one or more
execution environments.
Partitioning a hard drive is considered virtualization because one drive is partitioned to create two
separate hard drives
Devices, applications and human users are able to interact with the virtual resource as if it were a real
single logical resource
3
12. Virtual Machines vs. Containers - Architecture
Virtual Machines
● Each virtual machine (VM)
includes the app, the
necessary binaries and
libraries and an entire guest
operating system
Containers
● Containers include the app & all of its dependencies,
but share the kernel with other containers.
● Run as an isolated process in userspace on the host OS
● Not tied to any specific infrastructure – containers run
on any computer, infrastructure and cloud.
VMs
Containers
12
15. 15
What is Docker?
Docker is an Open platform for developers and sysadmins to build, ship and run
distributed applications.
It can run on most Linux distributions, Windows and Mac OS running Docker Engine
(Toolbox).
It is supported by most of cloud providers and provide a popular Dev/Test, CI &
DevOps platform for many use cases.
16. 16
First Public release of Docker
•March 2013, PyCon, Santa Clara:
"Docker" is shown to a public audience for the first time.
•It is released with an open source license.
•Very positive reactions and feedback!
•The dotCloud team progressively shifts to Docker development.
•The same year, dotCloud changes name to Docker.
18. Docker Architecture
18
• Docker Engine – Docker Daemon,
REST API, CLI.
• Docker client – Command Line Interface
(CLI) for interfacing with the Docker
• Image – Hierarchies of files built from a
Dockerfile, the file used as input to the
docker build command
• Container – Running instance of an Image
using the docker run command
• Dockerfile – Text file of Docker instructions
used to assemble a Docker Image
• Docker Hub (Registry) – Image repository
19. Docker Engine
19
Docker Engine is a client-server application with these major components:
•A server which is a type of long-running program called a daemon process (the dockerd command).
•A REST API which specifies interfaces that programs can use to talk to the daemon and instruct it what to do.
•A command line interface (CLI) client (the docker command).
20. Docker Images
Source: Docker docs and https://docs.docker.com/glossary/
10
•Image = files + metadata
•These files form the root filesystem of our container.
•The metadata can indicate a number of things, e.g.:
• the author of the image
• the command to execute in the container when
starting it
• environment variables to be set
• etc.
•Images are made of layers, conceptually stacked on top
of each other.
•Each layer can add, change, and remove files and/or
metadata.
•Images can share layers to optimize disk usage, transfer
times, and memory use.
21. 21
Docker Image vs Container
•An image is a read-only filesystem.
•A container is an encapsulated set of processes.
•Running in a read-write copy of that file system.
docker run command starts a container from a given image.
22. 22
Analogy with Object oriented programming
• Images are conceptually similar to classes.
• Layers are conceptually similar to inheritance.
• Containers are conceptually similar to instances.
23. How to change an Image
If an image is read-only, how do we change it?
•We create a new container from that image.
•Then we make changes to that container.
•When we are satisfied with those changes, we transform them into a new layer.
•A new image is created by stacking the new layer on top of the old image.
24. Creating images
docker build
Performs a repeatable build sequence.
•This is the preferred method!
docker commit
•Saves all the changes made to a container into a new layer.
•Creates a new image (effectively a copy of the container).
25. Image namespaces
There are three namespaces:
•Root namespace for Official images
e.g. ubuntu, busybox...
•User namespace for User (and organizations) images
e.g. jpetazzo/clock
•Self-hosted namespace for Self-hosted images
e.g. registry.example.com:5000/my-private/image
Let's explain each of them.
26. Root namespace
The root namespace is for official images.
They are gated by Docker Inc.
They are generally authored and maintained by third parties.
Those images include:
•Small images like busybox.
•Images to be used as bases for your builds like ubuntu, fedora...
•Ready-to-use components and services, like redis, postgresql...
•Over 150 such images are there at this point!
27. User namespace
The user namespace holds images for Docker Hub users and organizations.
For example:
jpetazzo/clock
The Docker Hub user is:
Jpetazzo
The image name is:
clock
28. Self-hosted namespace
This namespace holds images which are not hosted on Docker Hub, but on third party registries.
They contain the hostname (or IP address), and optionally the port, of the registry server.
For example:
localhost:5000/wordpress
•localhost:5000 - host and port of the registry
•wordpress - name of the image
29. Store and manage images
Images can be stored:
•On your Docker host.
•In a Docker registry.
You can use the Docker client to download or upload images.
docker pull - to download image
docker push - to upload image
30. Tag images
•Images can have tags.
•Tags define image versions or variants.
docker pull ubuntu is equivalent to docker pull
ubuntu:latest
•The :latesttag is generally updated often.
31. When to (not to) use tags
Don't specify tags:
•When doing rapid testing and prototyping.
•When experimenting.
•When you want the latest version.
Do specify tags:
•When going to production.
•To ensure that the same version will be used everywhere.
•To ensure repeatability later.
34. Docker CLI – Common / useful commands
• docker pull : pull images/volumes from Docker Registry.
• docker images : list all images on the local volume.
• docker run : run docker image.
• docker ps : list running docker containers (analogous to ps).
• docker ps –a : list all containers including not running.
• docker logs : show log data for a running or stopped container.
• docker rm : remove/delete a container | docker rmi : remove/delete an image.
• docker tag : name a docker image.
• docker build : build docker image from Dockerfile.
• docker login : login to registry.
• docker push : push images/volumes to Docker Registry.
• docker inspect : return container run time configuration parameter metadata.
34
35. 35
Hello World
In your Docker environment, just run the following command:
$ docker run busybox echo hello world
hello world
(If your Docker install is brand new, you will also see a few extra lines, corresponding to the download
of the busybox image.)
36. 36
A more useful container
• This is a brand new container.
• It runs a bare-bones, no-frills ubuntu system.
• -it is shorthand for -i -t.
o -i tells Docker to connect us to the container's stdin. (interactive mode)
o -t tells Docker that we want a pseudo-terminal. (tty)
37. 37
A more useful container
Try to run figlet in our container.
Alright, we need to install it.
40. 40
Comparing the container and the host
Exit the container by logging out of the shell, with ^D or exit.
Now try to run figlet. Does that work?
(It shouldn't; except if, by coincidence, you are running on a machine where figlet was installed
before.)
42. 42
Where is my container
•Can we reuse that container that we took time to customize?
We can, but that's not the default workflow with Docker.
•What's the default workflow, then?
Always start with a fresh container.
If we need something installed in our container, build a custom image.
•That seems complicated!
We'll see that it's actually pretty easy!
•And what's the point?
This puts a strong emphasis on automation and repeatability. Let's see why ...
43. 43
Pets Vs Cattle
• In the "pets vs. cattle" metaphor, there are two kinds of servers.
Pets:
o have distinctive names and unique configurations
o when they have an outage, we do everything we can to fix them
o Examples are : Oracle VirtualBox and VMWare
• Cattle:
o have generic names (e.g. with numbers) and generic configuration
o configuration is enforced by configuration management, golden images ...
o when they have an outage, we can replace them immediately with a new server
o Examples are : Docker and Kubernetes
• What's the connection with Docker and containers?
44. 44
Local development environments
• When we use local VMs (with e.g. VirtualBox or VMware), our workflow looks like this:
o create VM from base template (Ubuntu, CentOS...)
o install packages, set up environment
o work on project
o when done, shut down VM
o next time we need to work on project, restart VM as we left it
o if we need to tweak the environment, we do it live
• Over time, the VM configuration evolves, diverges.
• We don't have a clean, reliable, deterministic way to provision that environment.
45. 45
Local development with Docker
• With Docker, the workflow looks like this:
o create container image with our dev environment
o run container with that image
o work on project
o when done, shut down container
o next time we need to work on project, start a new container
o if we need to tweak the environment, we create a new image
• We have a clear definition of our environment, and can share it reliably with others.
47. 47
Objectives
Our first containers were interactive.
We will now see how to:
• Run a non-interactive container.
• Run a container in the background.
• List running containers.
• Check the logs of a container.
• Stop a container.
• List stopped containers.
61. Some more options to run a container
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
• Examples:
docker run hello-world # install and run hello-world
(foreground mode by default)
docker run -it ubuntu /bin/bash # run ubuntu container and log into it.
docker run -d -p 9090:80 -t <image id> # -d : detached mode
# -p : port forwarding 9090 -> host
80 -> container
docker exec -it <container id> /bin/bash #login to running container
61
62. Docker Container Lifecycle
– Conception
• BUILD an Image from a Dockerfile
– Birth
• RUN (create+start) a container
– Reproduction
• COMMIT (persist) a container to a new image
• RUN a new container from an image
– Sleep
• KILL a running container
– Wake
• START a stopped container
– Death
• RM (delete) a stopped container
– Extinction
• RMI a container image (delete image)
62
64. Dockerfile
• Like a Makefile (shell script)
• Extends from a Base Image
• Results in a new Docker Image
•A Docker file lists the steps needed to build an images
• docker build command is used to run a Docker file
65
65. Writing our first Dockerfile
66
Our Dockerfile must be in a new, empty directory.
• Create a directory to hold our Dockerfile.
$ mkdir MyDockerFile
• Create a Dockerfile inside this directory.
$ cd MyDockerFile
$ vi Dockerfile
83. 84
Containerizing an application using dockerfile
Example Static Site Dockerfile
FROM nginx
COPY wrapper.sh /
COPY html /usr/share/nginx/html
CMD ["./wrapper.sh"]
Docker build image CLI example
$ docker build -t static-site:1.0 .
NOTE: The “.” references Dockerfile in local directory
85. Excellent Use Cases for Containers
Ready to Run Application Stacks
– Excellent for Dev/Test setups
– Deployment in Seconds, not Hours/Days
– Start Up, Tear Down Quickly
86
One-Time Run Jobs and Analytics
– Run the Job / Analysis and quit
Front-End App Servers
– Highly horizontally scalable
– Fast A/B, Rolling Deployments
– Traditional Technologies - MW/Backend
New App Dev & Microservices
– Refactor all or part of legacy app
– Containers are great for Microservices Server Density
– Containers can use dynamic ports
– Run many of the same app on a server
• instead of one per VM
86. Docker Compose
• Docker Compose
– Docker Tool for defining and running multi-container Docker applications
87
90. Setup Wordpress site using docker compose
5. Create The WordPress Site:
##############################################
#sudo vi docker-compose.yml
---
---
##############################################
6. Now start the application group:
docker-compose up -d
7. Now, in the browser go to port 8080, using your public IP or host name, as shown below
localhost:8080 # Fill this form and click on install WordPress.
8. Now visit your server’s IP address again to port 8181 this time. You’ll be greeted by the phpMyAdmin login
screen:
localhost:8181
91. Docker Hub
92
• Docker Inc.
– Repository
– public and private images
• Enables images to be shared and
moved off the laptop
• Example usage:
– $ docker tag docker-whale:latest username/docker-whale:latest
– $ docker push username/docker-whale:latest
– $ docker pull username/docker-whale:latest
92. Docker Swarm
• Docker Swarm is a technique to create and maintain a cluster
of Docker Engines.
• The Docker engines can be hosted on different nodes, and these
nodes, which are in remote locations, form a Cluster
when connected in Swarm mode.
93
All of this is part of a transformation of technologies along a number of fronts, and is the basis for modern agile application development.
Now, let's look at how a virtual machine (VM) is different from a container.
While containers may sound like a VM, the two are distinct technologies. With VMs each virtual machine includes the application, the necessary binaries and libraries and the entire guest operating system.
Whereas, Containers include the application, all of its dependencies, but share the kernel with other containers and are not tied to any specific infrastructure, other than having the Docker engine installed on its host – allowing containers to run on almost any computer, infrastructure and cloud.
Note - at this time, Windows and Linux containers require that they run on their respective kernel base, therefore, Windows containers cannot run on Linux hosts and vice versa.
Intro to Basic Container Concepts
A container is a runtime instance of a Docker image.
https://docs.docker.com/engine/reference/glossary/#/container
Docker is the company and containerization technology.
https://docs.docker.com/engine/reference/glossary/#/docker
Jumping back a bit, there is a new nomenclature that Docker introduces, here are terms that you will need to be familiar with.
Each of these Docker technologies will be explored in this HOL. It's important to note that this core technology is open source. There are other technologies in the greater ecosystem, that could be open source, or licensed or even a hybrid, with a paid support option.
The Docker Engine is THE core piece of technology that allows you to run containers. In order for a container to run on any Linux host, at a minimum, the Docker Engine needs to be installed. Then the container can run on any Linux host where Docker Engine is installed, providing the benefit of portability, without doing any application specific configuration changes on each host.
Docker images are a collection of files, which have everything needed to run the software application inside the container. However, they are ephemeral, meaning that any data that is written inside the container, while it is running, will not be retained.
If the container is stopped and restarted from its image, the container will run exactly the same as the first time, absent of any changes made during the last run cycle. Changes to the container either have to be made during the image creation process, using the Dockerfile that become part of the image, or data can be retained by mounting a persistent storage volume, from inside the container to the outside. This will be explored further in the HOL exercises below.
Running multi container environment for multiple purposes:
Mail (Messaging) Server
Web Server + DB
Caching
Docker compose is written in YAML
Single command to manage all services
Running multi container environment for multiple purposes:
Mail (Messaging) Server
Web Server + DB
Caching
Docker compose is written in YAML
Single command to manage all services
Running multi container environment for multiple purposes:
Mail (Messaging) Server
Web Server + DB
Caching
Docker compose is written in YAML
Dingle command to manage all services