The document provides an agenda for a DevOps with Containers training over 4 days. Day 1 covers Docker commands and running containers. Day 2 focuses on Docker images, networks, and storage. Day 3 introduces Docker Compose. Day 4 is about Kubernetes container orchestration. The training covers key Docker and DevOps concepts through presentations, videos, labs, and reading materials.
This document provides an introduction and overview of Docker and Docker Compose. It begins with background on the speaker and a history of session-based, non-session based, and container-based computing. Key benefits of containers are then outlined. The document explains the terminology used in Docker and provides examples of pulling an image, building an image, and using Docker Compose to define and run a multi-container application with services like Redis, Node, and Nginx. It also lists and briefly explains many common Docker commands.
Introduction to Docker presented by MANAOUIL Karim at the Shellmates's Hack.INI event. The teams deployed were assisted to deploy a Python Flask application behind an Nginx load balancer.
This document provides instructions on installing Docker Engine on Ubuntu and describes common Docker commands. It discusses installing Docker on Ubuntu versions 18.04 LTS and higher using a convenience script. Common Docker commands covered include docker run to run a container, docker ps to list running containers, docker stop and docker start to stop and start containers, and docker rm to remove containers. The document also discusses Docker images, tags, volumes, environment variables, building custom Dockerfiles, and using Docker Compose to define and run multi-container apps.
Introduction to Docker - Learning containerization XP conference 2016XP Conference India
Docker containers package applications and their dependencies to run consistently regardless of environment. Containers are more lightweight than virtual machines and use fewer resources. Docker images define the components of containers. The Dockerfile defines how to build images. Docker Compose defines multi-container applications through a YAML file specifying images, networking, volumes etc.
This document provides an overview of Docker and containers. It begins with a brief introduction to 12 Factor Applications methodology and then defines what Docker is, explaining that containers utilize Linux namespaces and cgroups to isolate processes. It describes the Docker software and ecosystem, including images, registries, Docker CLI, Docker Compose, building images with Dockerfile, and orchestrating with tools like Kubernetes. It concludes with a live demo and links to additional resources.
Accelerate your software development with DockerAndrey Hristov
Docker is in all the news and this talk presents you the technology and shows you how to leverage it to build your applications according to the 12 factor application model.
This document provides an introduction and overview of Docker and Docker Compose. It begins with background on the speaker and a history of session-based, non-session based, and container-based computing. Key benefits of containers are then outlined. The document explains the terminology used in Docker and provides examples of pulling an image, building an image, and using Docker Compose to define and run a multi-container application with services like Redis, Node, and Nginx. It also lists and briefly explains many common Docker commands.
Introduction to Docker presented by MANAOUIL Karim at the Shellmates's Hack.INI event. The teams deployed were assisted to deploy a Python Flask application behind an Nginx load balancer.
This document provides instructions on installing Docker Engine on Ubuntu and describes common Docker commands. It discusses installing Docker on Ubuntu versions 18.04 LTS and higher using a convenience script. Common Docker commands covered include docker run to run a container, docker ps to list running containers, docker stop and docker start to stop and start containers, and docker rm to remove containers. The document also discusses Docker images, tags, volumes, environment variables, building custom Dockerfiles, and using Docker Compose to define and run multi-container apps.
Introduction to Docker - Learning containerization XP conference 2016XP Conference India
Docker containers package applications and their dependencies to run consistently regardless of environment. Containers are more lightweight than virtual machines and use fewer resources. Docker images define the components of containers. The Dockerfile defines how to build images. Docker Compose defines multi-container applications through a YAML file specifying images, networking, volumes etc.
This document provides an overview of Docker and containers. It begins with a brief introduction to 12 Factor Applications methodology and then defines what Docker is, explaining that containers utilize Linux namespaces and cgroups to isolate processes. It describes the Docker software and ecosystem, including images, registries, Docker CLI, Docker Compose, building images with Dockerfile, and orchestrating with tools like Kubernetes. It concludes with a live demo and links to additional resources.
Accelerate your software development with DockerAndrey Hristov
Docker is in all the news and this talk presents you the technology and shows you how to leverage it to build your applications according to the 12 factor application model.
Introduction to Docker, December 2014 "Tour de France" EditionJérôme Petazzoni
Docker, the Open Source container Engine, lets you build, ship and run, any app, anywhere.
This is the presentation which was shown in December 2014 for the "Tour de France" in Paris, Lille, Lyon, Nice...
Docker is a tool that allows developers to package applications into containers to ensure consistency across environments. Some key benefits of Docker include lightweight containers, isolation, and portability. The Docker workflow involves building images, pulling pre-built images, pushing images to registries, and running containers from images. Docker uses a layered filesystem to efficiently build and run containers. Running multiple related containers together can be done using Docker Compose or Kubernetes for orchestration.
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.
Настройка окружения для кросскомпиляции проектов на основе docker'acorehard_by
Как быстро и легко настраивать/обновлять окружения для кросскомпиляции проектов под различные платформы(на основе docker), как быстро переключаться между ними, как используя эти кирпичики организовать CI и тестирование(на основе GitLab и Docker).
This document discusses using Docker for development and delivery environments. It begins with an introduction to Docker, explaining that it is an open platform for building, shipping and running distributed applications using lightweight containers. It then covers benefits of Docker like portability and reduced dependencies compared to traditional VMs. The document shows how to install and configure Docker, build Docker images from Dockerfiles, run containers from images using docker-compose, modify images and redeploy them. It also discusses using Docker to build microservices applications with independent, upgradeable services in separate containers.
The internals and the latest trends of container runtimesAkihiro Suda
The document discusses the internals and latest trends of container runtimes. It describes how container runtimes like Docker use kernel features like namespaces and cgroups to isolate containers. It explains how containerd and runc work together to manage the lifecycles of container processes. It also covers security measures like capabilities, AppArmor, and SELinux that container runtimes employ to safeguard the host system.
This document provides an introduction to Docker. It describes Docker as a platform for running software in isolated containers. It discusses how Docker allows running multiple software versions simultaneously and makes software easily installable and disposable. It covers Docker concepts like images, containers, Dockerfiles for building images, and running containers from images. It also discusses Docker networking, Docker Compose for defining multi-container apps, and tools for monitoring Docker performance and usage.
Introduction to Docker at the Azure Meet-up in New YorkJérôme Petazzoni
This is the presentation given at the Azure New York Meet-Up group, September 3rd.
It includes a quick overview of the Open Source Docker Engine and its associated services delivered through the Docker Hub. It also covers the new features of Docker 1.0, and briefly explains how to get started with Docker on Azure.
Docker Essentials Workshop— Innovation Labs July 2020CloudHero
This presentation was the foundation of our Docker Essentials workshop hosted by CloudHero CEO & founder Andrei Manea for the Innovation Labs team on the 23rd of July 2020.
This presentation covers the following topics:
-Getting started with containers
-A bit of history about orchestration
-Introduction to services (what they are, how to create and scale them).
To find out more about this topic, check https://cloudhero.io/
Dockerizing Symfony2 application. Why Docker is so cool And what is Docker? And what are Containers? How they works? What are the ecosystem of Docker? And how to dockerize your web application (can be based on Symfony2 framework)?
This document provides an overview of Docker concepts and tools for beginners. It covers:
1. The differences between virtual machines and containers, and the container lifecycle.
2. Tools in the Docker ecosystem such as Docker Engine, Docker CLI, Docker Hub, Docker Compose, and networking/volume commands.
3. Examples of using Docker Engine, Docker Hub for images, networking, volumes and deploying images to Azure PaaS.
4. How to use Docker Compose to define and run multi-container applications.
This document provides an overview of Docker concepts and tools for beginners. It covers:
1. The differences between virtual machines and containers, and the container lifecycle.
2. Tools in the Docker ecosystem such as Docker Engine, Docker CLI, Docker Hub, Docker Compose, and networking/volume commands.
3. Examples of using Docker Engine, Docker Hub for images, networking, volumes and deploying images to Azure PaaS.
4. How to use Docker Compose to define and run multi-container applications.
Docker provides lightweight virtualization using containers. It allows applications to be packaged with their dependencies and run consistently across environments. Java applications can be containerized using Docker to enable continuous delivery, running the same environment for development, testing, and production. The Docker ecosystem is growing with many tools and platforms supporting containerization of Java applications.
This document provides an overview of Docker for web developers. It defines containers and Docker, discusses the benefits of Docker like faster deployment and portability. It explains key Docker concepts like images, containers, Dockerfile for building images, Docker platform, and commands for managing images and containers. The document also describes what happens behind the scenes when a container is run, and how to install and use Docker on Linux, Windows and Mac.
The document provides an overview of Docker for web developers. It defines containers and Docker, explaining that Docker allows developers to package applications into standardized units for development, shipment and deployment. It covers Docker concepts like images, containers, Dockerfiles and registries. It also discusses how to install Docker, manage images and containers, configure networking, mount volumes, and allow communication between containers. The goal is to explain the key Docker concepts and components to help developers understand and use Docker.
Running the Oracle SOA Suite Environment in a Docker ContainerGuido Schmutz
Running the Oracle SOA Suite Environment in a Docker Container
The document discusses running the Oracle SOA Suite environment in a Docker container. It begins with an introduction to Docker and its benefits over virtual machines. It then demonstrates various Docker commands like run, logs, images, ps to launch and manage containers. It also covers building custom images using Dockerfiles. The document provides examples to showcase common Docker tasks like committing changes to an image, pulling images, stopping and removing containers.
This document provides information about Docker, containers, and some Docker commands. It defines Docker as container runtime and orchestration technology. It compares containers to virtual machines and describes how containers provide isolation and run on a single host OS. It then introduces containers and describes how they package applications and dependencies. It visualizes Docker's architecture including the Docker daemon, REST API, images, and CLI. It provides examples of Docker commands to install Docker, pull and run images, build images, use Docker Hub, and manage volumes.
Batteries -Introduction – Types of Batteries – discharging and charging of battery - characteristics of battery –battery rating- various tests on battery- – Primary battery: silver button cell- Secondary battery :Ni-Cd battery-modern battery: lithium ion battery-maintenance of batteries-choices of batteries for electric vehicle applications.
Fuel Cells: Introduction- importance and classification of fuel cells - description, principle, components, applications of fuel cells: H2-O2 fuel cell, alkaline fuel cell, molten carbonate fuel cell and direct methanol fuel cells.
Introduction to Docker, December 2014 "Tour de France" EditionJérôme Petazzoni
Docker, the Open Source container Engine, lets you build, ship and run, any app, anywhere.
This is the presentation which was shown in December 2014 for the "Tour de France" in Paris, Lille, Lyon, Nice...
Docker is a tool that allows developers to package applications into containers to ensure consistency across environments. Some key benefits of Docker include lightweight containers, isolation, and portability. The Docker workflow involves building images, pulling pre-built images, pushing images to registries, and running containers from images. Docker uses a layered filesystem to efficiently build and run containers. Running multiple related containers together can be done using Docker Compose or Kubernetes for orchestration.
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.
Настройка окружения для кросскомпиляции проектов на основе docker'acorehard_by
Как быстро и легко настраивать/обновлять окружения для кросскомпиляции проектов под различные платформы(на основе docker), как быстро переключаться между ними, как используя эти кирпичики организовать CI и тестирование(на основе GitLab и Docker).
This document discusses using Docker for development and delivery environments. It begins with an introduction to Docker, explaining that it is an open platform for building, shipping and running distributed applications using lightweight containers. It then covers benefits of Docker like portability and reduced dependencies compared to traditional VMs. The document shows how to install and configure Docker, build Docker images from Dockerfiles, run containers from images using docker-compose, modify images and redeploy them. It also discusses using Docker to build microservices applications with independent, upgradeable services in separate containers.
The internals and the latest trends of container runtimesAkihiro Suda
The document discusses the internals and latest trends of container runtimes. It describes how container runtimes like Docker use kernel features like namespaces and cgroups to isolate containers. It explains how containerd and runc work together to manage the lifecycles of container processes. It also covers security measures like capabilities, AppArmor, and SELinux that container runtimes employ to safeguard the host system.
This document provides an introduction to Docker. It describes Docker as a platform for running software in isolated containers. It discusses how Docker allows running multiple software versions simultaneously and makes software easily installable and disposable. It covers Docker concepts like images, containers, Dockerfiles for building images, and running containers from images. It also discusses Docker networking, Docker Compose for defining multi-container apps, and tools for monitoring Docker performance and usage.
Introduction to Docker at the Azure Meet-up in New YorkJérôme Petazzoni
This is the presentation given at the Azure New York Meet-Up group, September 3rd.
It includes a quick overview of the Open Source Docker Engine and its associated services delivered through the Docker Hub. It also covers the new features of Docker 1.0, and briefly explains how to get started with Docker on Azure.
Docker Essentials Workshop— Innovation Labs July 2020CloudHero
This presentation was the foundation of our Docker Essentials workshop hosted by CloudHero CEO & founder Andrei Manea for the Innovation Labs team on the 23rd of July 2020.
This presentation covers the following topics:
-Getting started with containers
-A bit of history about orchestration
-Introduction to services (what they are, how to create and scale them).
To find out more about this topic, check https://cloudhero.io/
Dockerizing Symfony2 application. Why Docker is so cool And what is Docker? And what are Containers? How they works? What are the ecosystem of Docker? And how to dockerize your web application (can be based on Symfony2 framework)?
This document provides an overview of Docker concepts and tools for beginners. It covers:
1. The differences between virtual machines and containers, and the container lifecycle.
2. Tools in the Docker ecosystem such as Docker Engine, Docker CLI, Docker Hub, Docker Compose, and networking/volume commands.
3. Examples of using Docker Engine, Docker Hub for images, networking, volumes and deploying images to Azure PaaS.
4. How to use Docker Compose to define and run multi-container applications.
This document provides an overview of Docker concepts and tools for beginners. It covers:
1. The differences between virtual machines and containers, and the container lifecycle.
2. Tools in the Docker ecosystem such as Docker Engine, Docker CLI, Docker Hub, Docker Compose, and networking/volume commands.
3. Examples of using Docker Engine, Docker Hub for images, networking, volumes and deploying images to Azure PaaS.
4. How to use Docker Compose to define and run multi-container applications.
Docker provides lightweight virtualization using containers. It allows applications to be packaged with their dependencies and run consistently across environments. Java applications can be containerized using Docker to enable continuous delivery, running the same environment for development, testing, and production. The Docker ecosystem is growing with many tools and platforms supporting containerization of Java applications.
This document provides an overview of Docker for web developers. It defines containers and Docker, discusses the benefits of Docker like faster deployment and portability. It explains key Docker concepts like images, containers, Dockerfile for building images, Docker platform, and commands for managing images and containers. The document also describes what happens behind the scenes when a container is run, and how to install and use Docker on Linux, Windows and Mac.
The document provides an overview of Docker for web developers. It defines containers and Docker, explaining that Docker allows developers to package applications into standardized units for development, shipment and deployment. It covers Docker concepts like images, containers, Dockerfiles and registries. It also discusses how to install Docker, manage images and containers, configure networking, mount volumes, and allow communication between containers. The goal is to explain the key Docker concepts and components to help developers understand and use Docker.
Running the Oracle SOA Suite Environment in a Docker ContainerGuido Schmutz
Running the Oracle SOA Suite Environment in a Docker Container
The document discusses running the Oracle SOA Suite environment in a Docker container. It begins with an introduction to Docker and its benefits over virtual machines. It then demonstrates various Docker commands like run, logs, images, ps to launch and manage containers. It also covers building custom images using Dockerfiles. The document provides examples to showcase common Docker tasks like committing changes to an image, pulling images, stopping and removing containers.
This document provides information about Docker, containers, and some Docker commands. It defines Docker as container runtime and orchestration technology. It compares containers to virtual machines and describes how containers provide isolation and run on a single host OS. It then introduces containers and describes how they package applications and dependencies. It visualizes Docker's architecture including the Docker daemon, REST API, images, and CLI. It provides examples of Docker commands to install Docker, pull and run images, build images, use Docker Hub, and manage volumes.
Batteries -Introduction – Types of Batteries – discharging and charging of battery - characteristics of battery –battery rating- various tests on battery- – Primary battery: silver button cell- Secondary battery :Ni-Cd battery-modern battery: lithium ion battery-maintenance of batteries-choices of batteries for electric vehicle applications.
Fuel Cells: Introduction- importance and classification of fuel cells - description, principle, components, applications of fuel cells: H2-O2 fuel cell, alkaline fuel cell, molten carbonate fuel cell and direct methanol fuel cells.
A SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMSIJNSA Journal
The smart irrigation system represents an innovative approach to optimize water usage in agricultural and landscaping practices. The integration of cutting-edge technologies, including sensors, actuators, and data analysis, empowers this system to provide accurate monitoring and control of irrigation processes by leveraging real-time environmental conditions. The main objective of a smart irrigation system is to optimize water efficiency, minimize expenses, and foster the adoption of sustainable water management methods. This paper conducts a systematic risk assessment by exploring the key components/assets and their functionalities in the smart irrigation system. The crucial role of sensors in gathering data on soil moisture, weather patterns, and plant well-being is emphasized in this system. These sensors enable intelligent decision-making in irrigation scheduling and water distribution, leading to enhanced water efficiency and sustainable water management practices. Actuators enable automated control of irrigation devices, ensuring precise and targeted water delivery to plants. Additionally, the paper addresses the potential threat and vulnerabilities associated with smart irrigation systems. It discusses limitations of the system, such as power constraints and computational capabilities, and calculates the potential security risks. The paper suggests possible risk treatment methods for effective secure system operation. In conclusion, the paper emphasizes the significant benefits of implementing smart irrigation systems, including improved water conservation, increased crop yield, and reduced environmental impact. Additionally, based on the security analysis conducted, the paper recommends the implementation of countermeasures and security approaches to address vulnerabilities and ensure the integrity and reliability of the system. By incorporating these measures, smart irrigation technology can revolutionize water management practices in agriculture, promoting sustainability, resource efficiency, and safeguarding against potential security threats.
A review on techniques and modelling methodologies used for checking electrom...nooriasukmaningtyas
The proper function of the integrated circuit (IC) in an inhibiting electromagnetic environment has always been a serious concern throughout the decades of revolution in the world of electronics, from disjunct devices to today’s integrated circuit technology, where billions of transistors are combined on a single chip. The automotive industry and smart vehicles in particular, are confronting design issues such as being prone to electromagnetic interference (EMI). Electronic control devices calculate incorrect outputs because of EMI and sensors give misleading values which can prove fatal in case of automotives. In this paper, the authors have non exhaustively tried to review research work concerned with the investigation of EMI in ICs and prediction of this EMI using various modelling methodologies and measurement setups.
Literature Review Basics and Understanding Reference Management.pptxDr Ramhari Poudyal
Three-day training on academic research focuses on analytical tools at United Technical College, supported by the University Grant Commission, Nepal. 24-26 May 2024
Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...IJECEIAES
Medical image analysis has witnessed significant advancements with deep learning techniques. In the domain of brain tumor segmentation, the ability to
precisely delineate tumor boundaries from magnetic resonance imaging (MRI)
scans holds profound implications for diagnosis. This study presents an ensemble convolutional neural network (CNN) with transfer learning, integrating
the state-of-the-art Deeplabv3+ architecture with the ResNet18 backbone. The
model is rigorously trained and evaluated, exhibiting remarkable performance
metrics, including an impressive global accuracy of 99.286%, a high-class accuracy of 82.191%, a mean intersection over union (IoU) of 79.900%, a weighted
IoU of 98.620%, and a Boundary F1 (BF) score of 83.303%. Notably, a detailed comparative analysis with existing methods showcases the superiority of
our proposed model. These findings underscore the model’s competence in precise brain tumor localization, underscoring its potential to revolutionize medical
image analysis and enhance healthcare outcomes. This research paves the way
for future exploration and optimization of advanced CNN models in medical
imaging, emphasizing addressing false positives and resource efficiency.
Advanced control scheme of doubly fed induction generator for wind turbine us...IJECEIAES
This paper describes a speed control device for generating electrical energy on an electricity network based on the doubly fed induction generator (DFIG) used for wind power conversion systems. At first, a double-fed induction generator model was constructed. A control law is formulated to govern the flow of energy between the stator of a DFIG and the energy network using three types of controllers: proportional integral (PI), sliding mode controller (SMC) and second order sliding mode controller (SOSMC). Their different results in terms of power reference tracking, reaction to unexpected speed fluctuations, sensitivity to perturbations, and resilience against machine parameter alterations are compared. MATLAB/Simulink was used to conduct the simulations for the preceding study. Multiple simulations have shown very satisfying results, and the investigations demonstrate the efficacy and power-enhancing capabilities of the suggested control system.
Introduction- e - waste – definition - sources of e-waste– hazardous substances in e-waste - effects of e-waste on environment and human health- need for e-waste management– e-waste handling rules - waste minimization techniques for managing e-waste – recycling of e-waste - disposal treatment methods of e- waste – mechanism of extraction of precious metal from leaching solution-global Scenario of E-waste – E-waste in India- case studies.
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...IJECEIAES
Climate change's impact on the planet forced the United Nations and governments to promote green energies and electric transportation. The deployments of photovoltaic (PV) and electric vehicle (EV) systems gained stronger momentum due to their numerous advantages over fossil fuel types. The advantages go beyond sustainability to reach financial support and stability. The work in this paper introduces the hybrid system between PV and EV to support industrial and commercial plants. This paper covers the theoretical framework of the proposed hybrid system including the required equation to complete the cost analysis when PV and EV are present. In addition, the proposed design diagram which sets the priorities and requirements of the system is presented. The proposed approach allows setup to advance their power stability, especially during power outages. The presented information supports researchers and plant owners to complete the necessary analysis while promoting the deployment of clean energy. The result of a case study that represents a dairy milk farmer supports the theoretical works and highlights its advanced benefits to existing plants. The short return on investment of the proposed approach supports the paper's novelty approach for the sustainable electrical system. In addition, the proposed system allows for an isolated power setup without the need for a transmission line which enhances the safety of the electrical network
Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024Sinan KOZAK
Sinan from the Delivery Hero mobile infrastructure engineering team shares a deep dive into performance acceleration with Gradle build cache optimizations. Sinan shares their journey into solving complex build-cache problems that affect Gradle builds. By understanding the challenges and solutions found in our journey, we aim to demonstrate the possibilities for faster builds. The case study reveals how overlapping outputs and cache misconfigurations led to significant increases in build times, especially as the project scaled up with numerous modules using Paparazzi tests. The journey from diagnosing to defeating cache issues offers invaluable lessons on maintaining cache integrity without sacrificing functionality.
3. Topics to review before we start
● Linux command line
○ ls, ls -R
○ date
○ grep, cat
○ type
○ man
● Filesystem
○ mkdir, chmod, chown, pwd
○ permissions
○ cd, touch
● Pipes
● SSH
● Shell alias
● Editor: vi
● Superuser
● nginx
● git
5. Physical Server
Also: bare-metal server
Fixed processor, memory, network,
storage
Operating system hosts applications
with their dependencies
Single tenant (owner)
6. Virtual Server
Also: virtual machine (VM)
Emulation of a physical computer
Hardware is shared by multiple
VMs
Each VM runs an operating system
Multiple tenants (owners)
7. Container
Operating system is shared
Applications are packaged as
container images with their
dependencies and isolated at
runtime (Docker)
Lower overhead than VMs
9. State of the Art
● Applications
○ run as multiple instances of small containers
○ managed by “orchestrators” like Kubernetes
● Databases
○ special performance and storage requirements
○ run as virtual machines
11. Docker
● Open Source Container engine
● A ”Docker image” is an application containerized using
docker
● Docker is also the Company behind docker
● A Docker image is pushed to a Registry, and pulled to
start a container
12. From Docker image to container
Image
Dockerfile Container Container
Developer Operator
writes
docker build
docker push
Docker Registry
docker pull
docker run docker run
19. ● Follow instructions at https://docs.docker.com/get-docker/
○ Install Docker using the convenience script
● Add your user to the docker group
○ sudo adduser <username> docker
● Log out and log in again
● Check Docker version
○ docker version
● Run a hello world command
○ docker run hello-world
Install Docker on your Virtual Machine
20. The anatomy of a Linux process
● The executable - the binary file located in the file system
○ which docker; which vim; file $(which cat)
● The process ID and hierarchy
○ ps; ps -elf; pstree <user>; pstree -pa; docker ps; docker -as
● STDIN, STDOUT, STDERR and redirections
○ {STDIN} → Process → STDOUT + STDERR
○ [process] < [file] (stdin_input)
○ [process] > [file] (stdout_output)
○ [process] 2> [file] (stderr_output)
● Environment variables - Executables can read them.
○ printenv; export
21. Common Binaries to use
● Nginx: web server to serve static sites or to load balance HTTP requests to
applications
● Redis: in-memory database, for storing simple data structures as key/value
pairs
● MySQL: relational database, frequently used as backend for websites (e.g.
Wordpress)
● PostgreSQL: relational database like MySQL, older, feature rich
● Ansible, Chef, Puppet: you write configuration "as code" and the tool applies
it automatically on servers
● Ubuntu, CentOS, Fedora, Debian, Alpine: Linux distributions
22. Docker commands
● docker run <image>
○ If image not found locally, downloads the latest image from Registry.
○ Starts container with a Container ID != Image name
○ Can start the container in detached mode
○ Can setup port mapping to access the Container
● docker ps [-as]
○ Lists running containers
● docker images
● docker exec <container> <command>
○ Runs a command inside a container
● ...
24. Katacoda Scenario; KodeKloud Lab [CouseLink]
● Start and stop containers
● Pull and remove images
● Inspect what an image is made of
Docker CLI Reference
Lab 1: Docker Basic Commands
29. Why to use containers
● Containerization provides consistent environments. Applications behave the
same on the developer's workstation and in production deployments.
● Containerized applications are isolated from other applications also when
containers of different applications run on the same server.
● Container images include software dependencies of the application like
programming language runtimes or software libraries.
● Containers are more lightweight than physical servers and virtual machines.
This reduces costs and enables faster updates of applications.
● Many tools are available to build and run containerized applications. This
week, we get to know Docker, Docker Compose, and Kubernetes.
30. What happens when Docker starts a container
1. Look for the image in the local cache
2. If not found, look for the image in the remote image repository
3. When needed, pull the image from the repository to the local cache
4. Extract all the layers of the container image
5. Create a layer on top which will be used for changes by the new container
6. Give the container its own internal IP address and connect it to the network
7. If requested, establish port mappings from the host to the container
8. Start the command specified in Dockerfile within the container environment
31. Docker Commands Cheat Sheet
● docker help ps|run|exec|stop|rm|images|rmi|inspect # get quick help
● docker ps [-q] [-a] # list containers, also stopped with -a, only IDs with -q
● docker run [-d] [--name name] [-e name=value] [-p hostport:containerport] image[:tag]
● docker exec -it container /bin/bash # open shell in running container
● docker stop container… # stop running containers
● docker rm container… # delete stopped containers
● docker rm $(docker ps -q -a) # delete all existing containers, all have to be stopped
● docker images [-q] # list local container images, only IDs with -q
● docker rmi image… # delete local container images
● docker inspect container|image # inspect details about containers or images
38. Short Quiz to Warm Up
https://forms.gle/X38MDMw3PXYZcq398
Extensive documentation about Dockerfile is available on the Docker site:
https://docs.docker.com/engine/reference/builder/. You may need this reference
also for the assignment on the next slide.
39. How to build container images
1. Create a new Dockerfile in your application source tree
2. Specify the base image (FROM)
3. Install dependencies with the Linux distro's package manager (RUN)
4. Define the directory where the application will run (WORKDIR)
5. Copy the dependency manifest, e.g. package.json, into the image (COPY)
6. Install direct dependencies of your application e.g. with npm (RUN)
7. Copy the source code into the image (COPY)
8. Define on which port the application will be listening (EXPOSE)
9. Specify the command to be run when the container starts (CMD)
40. Assignment: Build Your Own Image
Take an existing Node.js app and dockerize it
Download the source code of the app to your instance with this command:
curl -s https://lanfranchi.ch/fabio/dockerfile-assignment-1.tar.gz | tar -xzvf -
● The code is extracted to a subdirectory named dockerfile-assignment-1.
● Start by reading the detailed instructions in the Dockerfile.
● Flesh out the Dockerfile. Build it. Test it. Run it.
● Expect this to be iterative. Rarely do I get it right the first time.
● Use the Alpine version of the official 'node' 16.x image.
● Expected result is a web site.
41. Container Registry
● Where to store Docker Images
● Can be public or private
● Hosted or Self-hosted
● Organized by Repositories ( == app name), ordered by tags ( == versions)
44. Docker Hub Account and upload
● Sign up with Docker Hub: https://hub.docker.com
● Use e.g. powercoder<your name> as Docker ID
● Log in with your Docker Hub credentials on your workstation: docker login
● Create a repository in Docker Hub
● Upload your image
47. A few useful Linux commands
● ip address; ip link
● ping <ip>
● telnet <ip> <port>
● netstat -nat ; netstat -nat | grep LISTEN ; netstat -nat | grep :<port>
● curl http://<ip>:<port>
● curl [-v] http://<url>
● touch <file>; cat <file>; nano <file>
● cat <file> | grep [-i] <text> | wc
● echo << EOF
48. Docker networks
‘docker networks ls’
● bridge (default) = Containers get an IP and can communicate with other
containers in the bridge.
○ Expose ports externally via mapping.
● none = Containers do not get any IP and cannot communicate with
others.
● host = Containers shares the network of the server. All containers share
the same IP address of the host.
○ All ports are reachable on the server IP.
● custom bridge = As the default bridge, but controls the IP subnet and has
built-in DNS.
53. Docker Storage
● Writable layer = Changes are deleted after container is stopped. Copy-
on-Write.
● Volume = Changes are permanent after container is stopped. In
/var/lib/docker/volumes. Managed by Docker.
● Bind Mount= Changes are permanent after container is stopped.
Managed by the host Server. Can be in any mount point.
● Tempfs = Changes are deleted after container is stopped. Paths outside
of the Writable layer (i.e. /app/data)
54. Docker Storage
● Volumes and Bind Mounts for
○ Share data between containers
○ Share configuration files from host to container
○ Write logs to external storage
65. What Kubernetes does
Manages a group of servers that run containers = Nodes
Deploys application stacks on the cluster = Pod
Manages and keeps the Pods healthy
Cluster = Master + Nodes
Image a new application needs running: slow to deploy new servers
During the night: resources are not used optimally
Imagine a Server breaks: Maintenance and operations are slow (fix, repair)
Image a new application needs running: fast to deploy new servers
During the night: The HW is used more, because it is shared.
During the day: peak use of resources cause contention
Imagine a Server breaks: Easy migration (?)
Problem: Operation, still each VM is unique. Hard to track dependencies (app needs to build the whole stack up to the OS)
Compute resources wasted on running the same OS multiple times. Multiple versions (?) OSs to patch slow (fix, repair
Docker is not the only one, there are other Container engines, like lxd.
All applications are based on the same OS: Linux!
No dependencies are installed on the Host OS, they are packaged in the application
The Application cannot require tuning the OS - No customization
VMs are good for isolation
Containers are smaller, easier to move
Micro Services architecture
Why do we need an Orchestrator
Applications made of several Containers
Monitor and restart containers that failed
Determine where to run containers
The Developer and the Operator can be the same person
Why do we need to log out and in again?
> Changes to the user membership apply on new login
EnvVars = A way to pass configuration information
Why do we have a Containerd ID and not the Image name? What are they different?
Why do we have a Containerd ID and not the Image name? What are they different?