SlideShare a Scribd company logo
1 of 128
Admincamp 2017
Der Wal in der Kiste – Docker 101
Ulrich Krause
18.09 – 21.09.2017
Gelsenkirchen
Agenda
IBM PINK
Docker
 Warum Docker?
 Grundsätzliches zur Funktionsweise
 Installation ( Linux, Windows, Raspberry Pi )
 Container / Virtual machines
 Images & Container / Wichtige CLI commands
 Docker Registry / Hub
 Domino & Docker ?
Kubernetes
IBM Spectrum Conductor for Containers / IBM Cloud
private
Über: Ulrich Krause
Lotus Notes und Domino seit 1993
Entwickler / Administrator
IBM Champion 2010 – 2016
OpenNTF Contributor
Let‘s Encrypt 4 Domino ( LE4D )
Entwickler bei midpoints GmbH
Think Pink – The Future of IBM Connections
There are no closed code repositories – Any IBMer can pull
down code and edit it
Customers can join sprint reviews
Pink will still embrace things from the past – capabilities will
not be sunset
There will be a single code base that will not have versions,
CRs, fixpacks etc.
Pink allows your data to stay where you want it – e.g. profiles
could stay on premises but wikis could be in the cloud
Fault tolerance will be built into the platform, e.g.
automatically restart services it recognizes are down
Pink is cognitive – it will be everywhere
It will be API driven – APIs will be available for everything, no
feature will be available without an API
Connections 6 – The beginnings of Pink
To move to Pink, you must first be on Connections 6.
Orient Me
Technology Behind Pink
Modern CI-CD framework
StrongLoop / IBM API Connect (node.js/express)
SWIFT / Go
React.js
MongoDB
Redis
Nginx
Docker
No WebSphere, Java, Rational etc.
All components are open source
Codebase
Think Pink – The Future of IBM Connections
Webcast:
 http://www-01.ibm.com/support/docview.wss?uid=swg27049476
All you need to know about Orient Me
 https://www.slideshare.net/soccnx/all-you-need-to-know-about-
orient-me
Install Orient Me 6.0.0.1
 https://www.ibm.com/support/knowledgecenter/en/SSYGQH_6.0.
0/admin/install/c_install_orient_me_homepage.html
Starting the Pink story by installing Orient Me
 https://www.bea-services.de/blog/starting-the-pink-story-by-
installing-orient-me
Matrix from hell ( Transportation )
Malcolm McLean,
http://www.mehrcontainerfuerd
eutschland.de/geschichte-und-
geschichten/malcolm-mclean-
eine-vision-bewegt-die-welt/
Matrix from hell (Software Deployment)
History of Container Technology
Chroot circa 1982
FreeBSD Jails circa 2000
Solaris Zones circa 2004
Meiosys - MetaClusters with Checkpoint/Restore 2004-05
Linux OpenVZ circa 2005 (not in mainstream Linux)
AIX WPARs circa 2007
LXC circa 2008
Systemd-nspawn circa 2010-2013
Docker circa 2013
 built on LXC
 moved to libcontainer (March 2014)
Google Trends
Solomon Hykes: The future of Linux containers
https://www.youtube.com/watch?v=wW9CAH9nSLs
Was ist Docker
Docker INC
 Docker, Inc is the company behind development of Docker software, an
open-source project that automates the deployment of code inside
software containers.
Docker Engine
 is the part of Docker which creates and runs Docker containers
Docker Hub
 Docker Hub ist ein Online-Dienst, der eine Registry für Docker-Images
und Repositories beinhaltet.
 Die Registry teilt sich in einen öffentlichen und einen privaten Teil auf.
Build, Ship & Run applications anywhere
Companies running container technology
Companies running container technology in
production ( 500+ employees )
Driving force behind Initiatives
Transforming application architecture
• Monolitic application
• Slow changing
• Big server
• Loosely coupled services
• Rapidly updated
• Many small servers
~2000 Today
Microservices
Microservices are like Minions working together: small
services when organized to do work together can result in
large applications that are scalable, understandable, and
maintainable.
Driving force behind Initiatives
DevOps
DevOps ist ein Kunstwort aus den
Begriffen Development und IT
Operations.
DevOps soll durch gemeinsame
Anreize, Prozesse und Werkzeuge
eine effektivere und effizientere
Zusammenarbeit der Bereiche Dev,
Ops und QA ermöglichen.
Driving force behind Initiatives
Top 10 applications running in containers
VM vs. Container
https://faszination-kleben-dichten.de/aussergewohnliches/skurrile-reisemobile-caravaning-der-etwas-anderen-art/
VM vs. Container
Container
https://upload.wikimedia.org/wikipedia/commons/d/db/Mercedes-Benz_O404_Rotel_Tours_2.jpg
Resources ( VM )
Resources ( Container )
VM vs. Container
VM vs. Container
Containers and Virtual Machines Together
What is a container?
Linux
CGroups
Linux
Namespace
Docker
Image
Lifecycle
Linux Cgroups (Resource Control)
Linux Namespaces ( Process isolation )
Linux Namespaces ( Process isolation )
Docker Technical Deep Dive
http://docker-saigon.github.io/post/Docker-Internals/
Docker is available for …
https://github.com/docker
Install Docker on Linux (RHEL 7)
Package Manager For Windows
https://chocolatey.org/
Install Chocolatey
https://chocolatey.org/installchocolatey.cmd
Chocolatey Packages
Install Docker
Docker on Windows 10
Docker Settings
Docker Settings
Docker Settings
Using Windows Containers
https://stefanscherer.github.io/run
-linux-and-windows-containers-
on-windows-10/
Check Docker Installation
Docker on Windows 2016
Introduced at Microsoft Ignite Conference,
Atlanta, 20-SEP-2016
 https://blog.docker.com/2016/09/dockerforws2016/
Docker Enterprise Edition for Windows Server is available
for all Windows Server 2016 customers at no additional
cost
Consistent Docker user experience use the same
commands as Docker for Linux environments
Docker on Windows 2016
Docker on Windows 2016
Docker on Windows 2016
Docker on Windows 2016
Docker on Windows 2016
Docker on Windows 2016
Docker on Raspberry Pi
Update to Debian 8 (Jessie)
 $ sudo sed -i 's/wheezy/jessie/' /etc/apt/sources.list
 $ sudo sed -i 's/wheezy/jessie/' /etc/apt/sources.list.d/raspi.list
 $ sudo apt-get update && sudo apt-get -y upgrade
 $ sudo apt-get -y dist-upgrade
 $ sudo reboot
 $ sudo apt-get -y autoremove
 $ sudo apt-get -y purge $(dpkg -l | awk '/^rc/ { print $2 }')
 $ sudo reboot
Docker on Raspberry Pi
Install Docker
 $ curl -ks
https://packagecloud.io/install/repositories/Hypriot/Schatzkiste/s
cript.deb.sh | sudo bash
 $ sudo apt-get install docker-hypriot=1.10.3-1
 $ sudo usermod -aG docker $(whoami)
 $ sudo systemctl enable docker.service
 $ sudo reboot
docker run -d -p 80:80 hypriot/rpi-busybox-httpd
https://blog.hypriot.com/getting-started-with-docker-on-your-arm-device/
Container lifecycle
http://docker-saigon.github.io/img/event_state.png
Docker Engine
Dockerfile
Docker can build images automatically by reading the
instructions from a Dockerfile.
A Dockerfile is a text document that contains all the
commands a user could call on the command line to
assemble an image.
Using docker build users can create an automated build
that executes several command-line instructions in
succession.
Dockerfile Example
nginx.conf & default.conf
Building, step by step
Building: more steps
Docker history (image)
Docker images (-a)
Docker run & Docker ps -a
http://foo.bar.tld:8888
Docker start & Docker stop
Docker Registry
There are 3 choices for use of a Registry
 A Public Cloud-hosted registry. The Docker Hub is the default registry
used by the docker client and source of Officially maintained Docker
images, however alternatives exists such as Quay.io. Limited Private
repositories may be created or purchased to enable a quick Docker
adoption.
 An On-premise registry, through the commercially offered Trusted
Docker Registry, providing advanced configuration options, Logging,
usage and system health metrics and much more…
 A Self-hosted registry based on the official Open Source Docker Registry.
This is a fully functional Registry which you can fully setup by yourself
and is the basis on which the Docker Trusted Registry is built, but it does
not provide advanced monitoring & access control as well as requires
manual maintenance.
Nexus Repository OSS
https://www.sonatype.com/docker
https://www.ivankrizsan.se/2016/06/09/create-a-private-docker-registry/
https://hub.docker.com/
Docker login
docker login -u eknori https://index.docker.io/v1/
Erstellt / aktualisiert config.json in ~/.docker
Tag image
Push Image
F@!#!!, an issue …
… and how to resolve it
Add # to disable
https://hub.docker.com
Domino & Docker Support
Domino on Docker
Domino on Docker (Domino 9.0.1 image ) Pt1
Domino on Docker (Domino 9.0.1 image ) Pt2
Domino on Docker (Domino 9.0.1 image ) Pt3
Domino on Docker (Domino 9.0.1 FP 9 image)
Domino on Docker (Final image)
Domino on Docker (Final image)
Domino on Docker (Create & Run container)
List and Inspect volumes
List and Inspect volumes
Bind to specific IP address
Docker container sizes
x = (0B + 1.1GB + 160kB ) * n
https://portainer.io/
https://kubernetes.io/
Kubernetes Installation
Kubernetes Installation ( cont. )
Kubernetes Installation ( cont. )
Kubernetes Example
Kubernetes Example (cont.)
http://192.168.178.134:8888/
https://github.com/kubernetes/dashboard
IBM Cloud private v1.2.0 documentation
https://www.ibm.com/support/knowle
dgecenter/SSBS6K_1.2.0/kc_welcome_
containers.html
IBM Cloud private v1.2.0
http://labs.play-with-docker.com/
Gerald Peters, Erste Schritte mit Docker
Dienstag, 19.09.2017 09:00 – 10:30
Friedhelm Klein, Server-Installationen leichtgemacht
Dienstag, 19.09.2017 16:00 – 17:30
Ulrich Krause
Developer
midpoints GmbH
ulrich.krause@midpoints.de
Ulrick Krause – Der Wal in der Kiste
Montag, 18.09.2017 14:00 – 15:30
Habe keine Angst, Docker einzusetzen.
Docker bedeutet nicht, dass du gleich von 0 auf 100 in die
Container-Welt einsteigen musst und jedes hochgespielte
Buzzwort, das dir über den Weg läuft, aufgreifen musst.
Bei Docker geht es nicht darum, ein Multidatenzentrum
mit einem Load Balanced Cluster von Services
aufzubauen, das Zerodown Deploys mit einer nahtlosen
Integration in eine Continuous Integration & Delivery
Pipeline erlaubt.

More Related Content

What's hot

Chrome & Webkit overview
Chrome & Webkit overviewChrome & Webkit overview
Chrome & Webkit overviewBin Chen
 
Browsers on Android (Webkit,chromium)
Browsers on Android (Webkit,chromium)Browsers on Android (Webkit,chromium)
Browsers on Android (Webkit,chromium)Bin Chen
 
Life of a Chromium Developer
Life of a Chromium DeveloperLife of a Chromium Developer
Life of a Chromium Developermpaproductions
 
OVERVIEW: Chromium Source Tree
OVERVIEW: Chromium Source TreeOVERVIEW: Chromium Source Tree
OVERVIEW: Chromium Source TreeChang W. Doh
 
Webkit/chromium contribution process
Webkit/chromium contribution processWebkit/chromium contribution process
Webkit/chromium contribution processNAVER LABS
 
An Introduction To Model  View  Controller In XPages
An Introduction To Model  View  Controller In XPagesAn Introduction To Model  View  Controller In XPages
An Introduction To Model  View  Controller In XPagesUlrich Krause
 
Dockerize it! @ Codemotion 2016 in Rome
Dockerize it! @ Codemotion 2016 in RomeDockerize it! @ Codemotion 2016 in Rome
Dockerize it! @ Codemotion 2016 in RomeAlessandro Nadalin
 
Warsaw Frontend Meetup #1 - Webpack
Warsaw Frontend Meetup #1 - WebpackWarsaw Frontend Meetup #1 - Webpack
Warsaw Frontend Meetup #1 - WebpackRadosław Rosłaniec
 
Mobile Browser Internal (Blink Rendering Engine)
Mobile Browser Internal (Blink Rendering Engine)Mobile Browser Internal (Blink Rendering Engine)
Mobile Browser Internal (Blink Rendering Engine)Hyungwook Lee
 
Installing OpenCV 2.4.x with Qt
Installing OpenCV 2.4.x with QtInstalling OpenCV 2.4.x with Qt
Installing OpenCV 2.4.x with QtLuigi De Russis
 
Installing OpenCV 2.3.1 with Qt
Installing OpenCV 2.3.1 with QtInstalling OpenCV 2.3.1 with Qt
Installing OpenCV 2.3.1 with QtLuigi De Russis
 
Basic Gradle Plugin Writing
Basic Gradle Plugin WritingBasic Gradle Plugin Writing
Basic Gradle Plugin WritingSchalk Cronjé
 
WebKit and Blink: open development powering the HTML5 revolution
WebKit and Blink: open development powering the HTML5 revolutionWebKit and Blink: open development powering the HTML5 revolution
WebKit and Blink: open development powering the HTML5 revolutionjuanjosanchezpenas
 
Trying to Sell PVS-Studio to Google, or New Bugs in Chromium
Trying to Sell PVS-Studio to Google, or New Bugs in ChromiumTrying to Sell PVS-Studio to Google, or New Bugs in Chromium
Trying to Sell PVS-Studio to Google, or New Bugs in ChromiumAndrey Karpov
 
Essential Tools for Modern PHP
Essential Tools for Modern PHPEssential Tools for Modern PHP
Essential Tools for Modern PHPAlex Weissman
 
WebKit and Blink: Bridging the Gap Between the Kernel and the HTML5 Revolution
WebKit and Blink: Bridging the Gap Between the Kernel and the HTML5 RevolutionWebKit and Blink: Bridging the Gap Between the Kernel and the HTML5 Revolution
WebKit and Blink: Bridging the Gap Between the Kernel and the HTML5 Revolutionjuanjosanchezpenas
 
Using the Android Native Development Kit (NDK)
Using the Android Native Development Kit (NDK)Using the Android Native Development Kit (NDK)
Using the Android Native Development Kit (NDK)DroidConTLV
 
Create a PHP Library the right way
Create a PHP Library the right wayCreate a PHP Library the right way
Create a PHP Library the right wayChristian Varela
 
Using Composer with Drupal and Drush
Using Composer with Drupal and DrushUsing Composer with Drupal and Drush
Using Composer with Drupal and DrushPantheon
 
NuGet beyond Hello World - DotNext Piter 2017
NuGet beyond Hello World - DotNext Piter 2017NuGet beyond Hello World - DotNext Piter 2017
NuGet beyond Hello World - DotNext Piter 2017Maarten Balliauw
 

What's hot (20)

Chrome & Webkit overview
Chrome & Webkit overviewChrome & Webkit overview
Chrome & Webkit overview
 
Browsers on Android (Webkit,chromium)
Browsers on Android (Webkit,chromium)Browsers on Android (Webkit,chromium)
Browsers on Android (Webkit,chromium)
 
Life of a Chromium Developer
Life of a Chromium DeveloperLife of a Chromium Developer
Life of a Chromium Developer
 
OVERVIEW: Chromium Source Tree
OVERVIEW: Chromium Source TreeOVERVIEW: Chromium Source Tree
OVERVIEW: Chromium Source Tree
 
Webkit/chromium contribution process
Webkit/chromium contribution processWebkit/chromium contribution process
Webkit/chromium contribution process
 
An Introduction To Model  View  Controller In XPages
An Introduction To Model  View  Controller In XPagesAn Introduction To Model  View  Controller In XPages
An Introduction To Model  View  Controller In XPages
 
Dockerize it! @ Codemotion 2016 in Rome
Dockerize it! @ Codemotion 2016 in RomeDockerize it! @ Codemotion 2016 in Rome
Dockerize it! @ Codemotion 2016 in Rome
 
Warsaw Frontend Meetup #1 - Webpack
Warsaw Frontend Meetup #1 - WebpackWarsaw Frontend Meetup #1 - Webpack
Warsaw Frontend Meetup #1 - Webpack
 
Mobile Browser Internal (Blink Rendering Engine)
Mobile Browser Internal (Blink Rendering Engine)Mobile Browser Internal (Blink Rendering Engine)
Mobile Browser Internal (Blink Rendering Engine)
 
Installing OpenCV 2.4.x with Qt
Installing OpenCV 2.4.x with QtInstalling OpenCV 2.4.x with Qt
Installing OpenCV 2.4.x with Qt
 
Installing OpenCV 2.3.1 with Qt
Installing OpenCV 2.3.1 with QtInstalling OpenCV 2.3.1 with Qt
Installing OpenCV 2.3.1 with Qt
 
Basic Gradle Plugin Writing
Basic Gradle Plugin WritingBasic Gradle Plugin Writing
Basic Gradle Plugin Writing
 
WebKit and Blink: open development powering the HTML5 revolution
WebKit and Blink: open development powering the HTML5 revolutionWebKit and Blink: open development powering the HTML5 revolution
WebKit and Blink: open development powering the HTML5 revolution
 
Trying to Sell PVS-Studio to Google, or New Bugs in Chromium
Trying to Sell PVS-Studio to Google, or New Bugs in ChromiumTrying to Sell PVS-Studio to Google, or New Bugs in Chromium
Trying to Sell PVS-Studio to Google, or New Bugs in Chromium
 
Essential Tools for Modern PHP
Essential Tools for Modern PHPEssential Tools for Modern PHP
Essential Tools for Modern PHP
 
WebKit and Blink: Bridging the Gap Between the Kernel and the HTML5 Revolution
WebKit and Blink: Bridging the Gap Between the Kernel and the HTML5 RevolutionWebKit and Blink: Bridging the Gap Between the Kernel and the HTML5 Revolution
WebKit and Blink: Bridging the Gap Between the Kernel and the HTML5 Revolution
 
Using the Android Native Development Kit (NDK)
Using the Android Native Development Kit (NDK)Using the Android Native Development Kit (NDK)
Using the Android Native Development Kit (NDK)
 
Create a PHP Library the right way
Create a PHP Library the right wayCreate a PHP Library the right way
Create a PHP Library the right way
 
Using Composer with Drupal and Drush
Using Composer with Drupal and DrushUsing Composer with Drupal and Drush
Using Composer with Drupal and Drush
 
NuGet beyond Hello World - DotNext Piter 2017
NuGet beyond Hello World - DotNext Piter 2017NuGet beyond Hello World - DotNext Piter 2017
NuGet beyond Hello World - DotNext Piter 2017
 

Similar to Docker - Der Wal in der Kiste

[Codelab 2017] Docker 기초 및 활용 방안
[Codelab 2017] Docker 기초 및 활용 방안[Codelab 2017] Docker 기초 및 활용 방안
[Codelab 2017] Docker 기초 및 활용 방안양재동 코드랩
 
Develop with docker 2014 aug
Develop with docker 2014 augDevelop with docker 2014 aug
Develop with docker 2014 augVincent De Smet
 
Accelerate your development with Docker
Accelerate your development with DockerAccelerate your development with Docker
Accelerate your development with DockerAndrey Hristov
 
Accelerate your software development with Docker
Accelerate your software development with DockerAccelerate your software development with Docker
Accelerate your software development with DockerAndrey Hristov
 
Containers, Docker, and Microservices: the Terrific Trio
Containers, Docker, and Microservices: the Terrific TrioContainers, Docker, and Microservices: the Terrific Trio
Containers, Docker, and Microservices: the Terrific TrioJérôme Petazzoni
 
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...
Why everyone is excited about Docker (and you should too...) -  Carlo Bonamic...Why everyone is excited about Docker (and you should too...) -  Carlo Bonamic...
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...Codemotion
 
codemotion-docker-2014
codemotion-docker-2014codemotion-docker-2014
codemotion-docker-2014Carlo Bonamico
 
Docker - Demo on PHP Application deployment
Docker - Demo on PHP Application deployment Docker - Demo on PHP Application deployment
Docker - Demo on PHP Application deployment Arun prasath
 
JDD2014: Docker.io - versioned linux containers for JVM devops - Dominik Dorn
JDD2014: Docker.io - versioned linux containers for JVM devops - Dominik DornJDD2014: Docker.io - versioned linux containers for JVM devops - Dominik Dorn
JDD2014: Docker.io - versioned linux containers for JVM devops - Dominik DornPROIDEA
 
Docker Container As A Service - Mix-IT 2016
Docker Container As A Service - Mix-IT 2016Docker Container As A Service - Mix-IT 2016
Docker Container As A Service - Mix-IT 2016Patrick Chanezon
 
Agile Brown Bag - Vagrant & Docker: Introduction
Agile Brown Bag - Vagrant & Docker: IntroductionAgile Brown Bag - Vagrant & Docker: Introduction
Agile Brown Bag - Vagrant & Docker: IntroductionAgile Partner S.A.
 
Los contenedores en el mundo Microsoft #ReConnect2016
Los contenedores en el mundo Microsoft #ReConnect2016Los contenedores en el mundo Microsoft #ReConnect2016
Los contenedores en el mundo Microsoft #ReConnect2016Roberto Sanz Ciriano
 
Faster and Easier Software Development using Docker Platform
Faster and Easier Software Development using Docker PlatformFaster and Easier Software Development using Docker Platform
Faster and Easier Software Development using Docker Platformmsyukor
 
Docker module 1
Docker module 1Docker module 1
Docker module 1Liang Bo
 
Docker for .NET Developers
Docker for .NET DevelopersDocker for .NET Developers
Docker for .NET DevelopersTaswar Bhatti
 
Architecting .NET Applications for Docker and Container Based Deployments
Architecting .NET Applications for Docker and Container Based DeploymentsArchitecting .NET Applications for Docker and Container Based Deployments
Architecting .NET Applications for Docker and Container Based DeploymentsBen Hall
 

Similar to Docker - Der Wal in der Kiste (20)

[Codelab 2017] Docker 기초 및 활용 방안
[Codelab 2017] Docker 기초 및 활용 방안[Codelab 2017] Docker 기초 및 활용 방안
[Codelab 2017] Docker 기초 및 활용 방안
 
Develop with docker 2014 aug
Develop with docker 2014 augDevelop with docker 2014 aug
Develop with docker 2014 aug
 
Accelerate your development with Docker
Accelerate your development with DockerAccelerate your development with Docker
Accelerate your development with Docker
 
Accelerate your software development with Docker
Accelerate your software development with DockerAccelerate your software development with Docker
Accelerate your software development with Docker
 
Containers, Docker, and Microservices: the Terrific Trio
Containers, Docker, and Microservices: the Terrific TrioContainers, Docker, and Microservices: the Terrific Trio
Containers, Docker, and Microservices: the Terrific Trio
 
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...
Why everyone is excited about Docker (and you should too...) -  Carlo Bonamic...Why everyone is excited about Docker (and you should too...) -  Carlo Bonamic...
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...
 
codemotion-docker-2014
codemotion-docker-2014codemotion-docker-2014
codemotion-docker-2014
 
Demystifying Docker101
Demystifying Docker101Demystifying Docker101
Demystifying Docker101
 
Demystifying Docker
Demystifying DockerDemystifying Docker
Demystifying Docker
 
Docker - Demo on PHP Application deployment
Docker - Demo on PHP Application deployment Docker - Demo on PHP Application deployment
Docker - Demo on PHP Application deployment
 
Docker intro
Docker introDocker intro
Docker intro
 
JDD2014: Docker.io - versioned linux containers for JVM devops - Dominik Dorn
JDD2014: Docker.io - versioned linux containers for JVM devops - Dominik DornJDD2014: Docker.io - versioned linux containers for JVM devops - Dominik Dorn
JDD2014: Docker.io - versioned linux containers for JVM devops - Dominik Dorn
 
Docker Container As A Service - Mix-IT 2016
Docker Container As A Service - Mix-IT 2016Docker Container As A Service - Mix-IT 2016
Docker Container As A Service - Mix-IT 2016
 
Docker Ecosystem on Azure
Docker Ecosystem on AzureDocker Ecosystem on Azure
Docker Ecosystem on Azure
 
Agile Brown Bag - Vagrant & Docker: Introduction
Agile Brown Bag - Vagrant & Docker: IntroductionAgile Brown Bag - Vagrant & Docker: Introduction
Agile Brown Bag - Vagrant & Docker: Introduction
 
Los contenedores en el mundo Microsoft #ReConnect2016
Los contenedores en el mundo Microsoft #ReConnect2016Los contenedores en el mundo Microsoft #ReConnect2016
Los contenedores en el mundo Microsoft #ReConnect2016
 
Faster and Easier Software Development using Docker Platform
Faster and Easier Software Development using Docker PlatformFaster and Easier Software Development using Docker Platform
Faster and Easier Software Development using Docker Platform
 
Docker module 1
Docker module 1Docker module 1
Docker module 1
 
Docker for .NET Developers
Docker for .NET DevelopersDocker for .NET Developers
Docker for .NET Developers
 
Architecting .NET Applications for Docker and Container Based Deployments
Architecting .NET Applications for Docker and Container Based DeploymentsArchitecting .NET Applications for Docker and Container Based Deployments
Architecting .NET Applications for Docker and Container Based Deployments
 

Recently uploaded

08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 

Recently uploaded (20)

08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 

Docker - Der Wal in der Kiste

Editor's Notes

  1. Innovation by frustrtaion Malcolm McLean: Eine Vision bewegt die Welt 20 Fuß lang, 8 Fuß breit und 8 Fuß plus 6 Zoll hoch – das ist in der Transportwelt sprichwörtlich das Maß aller Dinge. Der Container und sein Erfinder Malcolm McLean haben in der internationalen Schifffahrt eine wahre Revolution ausgelöst. Dabei war es nicht einmal ein Reeder, der die einfache, aber geniale Idee hatte, Waren nicht einzeln als Stückgut, sondern gebündelt in einem standardisierten Container zu transportieren. Der US-amerikanische Spediteur Malcolm McLean war es leid, oft Stunden im Hafen auf die Entladung seiner Trucks warten zu müssen. Und so machte er sich Gedanken über ein effizienteres Transportsystem. Kein Reeder glaubte aber an seine Container-Idee und war bereit, die erforderlichen Investitionen zu leisten. Doch Malcolm McLean war von dem Erfolg seiner Vision überzeugt, sodass er sein Fuhrunternehmen verkaufte und selbst Reeder wurde. „I don’t have ships, I have seagoing trucks“, ist ein bekannter Ausspruch von ihm. Passend dazu nannte Malcolm McLean seine Reederei Sea-Land. Der Erfinder des Containers Malcolm McLean wird zunächst belächelt Als Malcolm McLean 1956 den ersten umgebauten Frachter mit 58 stapelbaren Stahlkisten von Newark/New York auf die Reise nach Texas schickte, wurde er noch von allen Seiten belächelt und teilweise sogar angefeindet. Dabei lagen die Vorteile von Containertransporten auf der Hand: Während mit der Entladung eines 5000 Tonnen fassenden Stückgutschiffes rund 60 Männer eine Woche lang beschäftigt waren, konnte Malcolm McLean seine Schiffe innerhalb weniger Stunden löschen, und das mit viel weniger Hafenpersonal. http://www.mehrcontainerfuerdeutschland.de/geschichte-und-geschichten/malcolm-mclean-eine-vision-bewegt-die-welt/ Containerization video https://www.youtube.com/watch?v=KGAW6NuKdms
  2. https://blog.jayway.com/2015/03/21/a-not-very-short-introduction-to-docker/ https://99designs.de/logo-design/contests/create-cool-open-source-project-logo-219415/entries nathanleclaireDocker Staff May '16 Basically, in the early days of Docker (the project) there was a contest on 99Designs hosted by Dotcloud (the company Docker used to be) with many ideas and submissions (other proposed mascots included a crane, a giraffe, and an acorn!). The whale logo was overwhelmingly popular compared to the others and quickly became voted as the winner of the contest. Name: Moby Dock
  3. http://docker-saigon.github.io/post/Docker-Internals/
  4. Published on Mar 21, 2013 At PyCon Solomon Hykes shows docker to the public for the first time. Damals gab es die Firma Docker Inc noch gar nicht. Aber der aufkommende Hype um Docker hat Solomon Hykes dazu bewogen das Projekt Docker aus der Taufe zu heben. https://www.youtube.com/watch?v=wW9CAH9nSLs
  5. Linux Container (LXC) sind seit Version 2.6.24 Bestandteil von Linux and erlauben sogenannte System-Level Virtualisierungen. Sie setzen auf Linux cgroup und name spaces, die Prozesse voneinander isolieren. Sie laufen daher scheinbar auf ihrem eigenen System. Docker baut auf Linux Containern auf und besteht aus drei Teilen: Docker Daemon, Docker Images, the Docker Repositorys. Docker Daemon läuft als root und verwaltet alle laufenden Container. So wie Virtuelle Maschinen auf Images basieren, basieren Docker Container auf Docker Images. Diese Images sind winzig verglichen mit virtuellen Maschinen Images und sind dank AUFS ”stapelbar”, so dass nur Änderungen gespeichert werden — siehe unten. Mit Hilfe von privaten und öffentlichen Docker Repositorys können Docker Images mit anderen geteilt und wie Source Code versioniert werden.
  6. Mittlerweile 10.5 – 12 Mrd be einer Wachstumsrate von 1 Mrd / 4-5 Wochen Alle Komponenten von Docker sind OpenSource
  7. 2.500 Contributors, davon 70% bei Docker selbst. Danach kommen contributoren von Microsoft und IBM. Docker ist quasi Standard in der Containertechnologie unter Linux geworden. Mit MS wurde daran gearbeitet, diesen Standard auch unter Windows zu etablieren.
  8. Die treibende Kraft zum Einsatz der Containertechnologie sind zum Einen die Microservices. Da ich Container auf jeder beliebigen Plattform laufen lassen kann, ist dies auch interessant für die Transformation von on-premises Applikationen in die Cloud, ohne damit gleichzeitig die Möglichkeit einer Exit Strategie zu verbauen. Genau so schnell, wie ich eine Anwendung in die Cloud bringen kann, genau so schnell kann ich sie auch wieder on-premises bereitstellen.
  9. http://www.codeops.tech/blog/microservices/an-overview-of-microservices/
  10. microservices
  11. Die treibende Kraft zum Einsatz der Containertechnologie sind zum Einen die Microservices. Da ich Container auf jeder beliebigen Plattform laufen lassen kann, ist dies auch interessant für die Transformation von on-premises Applikationen in die Cloud, ohne damit gleichzeitig die Möglichkeit einer Exit Strategie zu verbauen. Genau so schnell, wie ich eine Anwendung in die Cloud bringen kann, genau so schnell kann ich sie auch wieder on-premises bereitstellen.
  12. Imhttps://www.google.de/url?sa=i&rct=j&q=&esrc=s&source=imgres&cd=&cad=rja&uact=8&ved=0ahUKEwiyw7S5jvTVAhWOzRoKHR7GCHwQjRwIBw&url=http%3A%2F%2Fwww.acora.com%2Ftransform%2Fdevops-2%2F&psig=AFQjCNETRMb_32drsHn0VCmyp79Hf5jeEA&ust=1503809862298434age
  13. Die treibende Kraft zum Einsatz der Containertechnologie sind zum Einen die Microservices. Da ich Container auf jeder beliebigen Plattform laufen lassen kann, ist dies auch interessant für die Transformation von on-premises Applikationen in die Cloud, ohne damit gleichzeitig die Möglichkeit einer Exit Strategie zu verbauen. Genau so schnell, wie ich eine Anwendung in die Cloud bringen kann, genau so schnell kann ich sie auch wieder on-premises bereitstellen.
  14. NGINX: Docker is being used to contain a lot of HTTP servers, it seems. NGINX has been a perennial contender on this list since we began tracking image use in 2015. Redis: This popular key-value data store is often used as an in-memory database, message queue, or cache. Elasticsearch: Full-text search continues to increase in popularity, cracking the top 3 for the first time. Registry: 18% of companies running Docker are using Registry, an application for storing and distributing other Docker images. Registry has been near the top of the list in each edition of this report. Postgres: The increasingly popular open source relational database edges out MySQL for the first time in this ranking. MySQL: The most widely used open source database in the world continues to find use in Docker infrastructure. Adding the MySQL and Postgres numbers, it appears that using Docker to run relational databases is surprisingly common. etcd: The distributed key-value store is used to provide consistent configuration across a Docker cluster. Fluentd: This open source "unified logging layer" is designed to decouple data sources from backend data stores. This is the first time Fluentd has appeared on the list, displacing Logspout from the top 10. MongoDB: The widely-used NoSQL datastore. RabbitMQ: The open source message broker finds plenty of use in Docker environments.
  15. Was ist Docker? Docker gibt uns die Möglichkeit, Anwendungen in sogenannten Containern auszuführen. Diese Container können aufeinander aufbauen und miteinander kommunizieren. Beispiele für diese Anwendungen wären zum Beispiel ein Apache Server oder eine MySQL Datenbank. Der Unterschied zu normalen virtuellen Maschinen liegt darin, dass nicht jeder Container ein komplettes Betriebssystem – zum Beispiel Ubuntu 14.04 – mitbringen muss sondern nur die wichtigen Daten für die Anwendung enthält. Wollen wir den Webserver vom Datenbankserver trennen müssten wir also zwei komplette virtuelle Maschinen inklusive Betriebssystem starten. In Docker sind das einfach zwei unabhängige Container, die die jeweiligen Server starten. In der Webentwicklung bringt uns das einen entscheidenden Vorteil: Wir können die Serverumgebung, auf der später unsere Webanwendung laufen wird, genau auf unserem eigenen Rechner nachbilden – egal ob dieser mit Windows, Linux oder OS X läuft. Kompatibilitätsprobleme gehören damit also der Vergangenheit an. Außerdem können wir die Docker Container ganz einfach an Teamkollegen weitergeben, damit alle am selben Strang ziehen und auf derselben Umgebung entwickeln. Dieses Verteilen der Docker Container findet über das Docker Hub statt. Aus einem fertig konfigurierten Container können wir ganz simpel ein sogenanntes Image – also ein Abbild des Containers – bilden und dieses ins zentrale Docker Hub hochladen. Dort ist es dann entweder privat oder öffentlich für andere Leute zugänglich und diese können es bei sich benutzen. Verwirrt? Keine Angst, all das machen wir in den Folgeartikeln ganz langsam und Schritt für Schritt. Einen weiteren großen Vorteil möchte ich aber noch erwähnen. Docker lässt uns nicht nur die Produktivumgebung abbilden, wir können diese bei diversen Cloud-Hosting Anbietern wie beispielsweise Amazon Web Services sogar mit Hilfe unserer Docker Images einrichten. Das bedeutet einfach wir entwickeln unser Docker Image und konfigurieren es genau so wie wir es brauchen und sagen AWS dann So, und jetzt starte bitte einen Server der genau das kann. Das ist auch der eigentliche Grund, warum ich mich selber näher mit dem Thema Docker beschäftigt habe und natürlich gehe ich auch darauf näher ein.
  16. Stellen wir uns eine virtuelle Maschine vor wie ein Wohnmobil. Da gibt es große und kleine ( Disk ); mit viel und wenig PS ( Ram) ; in unterschiedlichen Ausprägungen ( OS ). Jede VM verfügt über ein eigenes OS ( Fahrrad ) und Ressourcen ( Toilette, Tisch, Küche etc ). Ggfs. Lassen sich die Ressourcen ( Disk ) an ein anderes OS andocken ( vmdk woanders verwenden ) In jeden Fall benötigt die VM immer ein eigenes OS. Dieses OS muss bei allen VM separat gepflegt werden. Updates. Gibt es z.B. ein besseres Bremssystem, dann muss es in jeder einzelnen VM ausgetauscht werden. Macht man es nicht, dann ergeben sich zwangsläufig Schiefstände und damit zugleich Sicherheitslücken. Je mehr VM, desto größer ist der Overhead durch diese Restriktion. Ersetzen wir jetzt das Fahrrad durch ein Auto, wird das deutlicher. Je mehr Autos, desto größer ist der CO2. Er
  17. Was ist Docker? Docker gibt uns die Möglichkeit, Anwendungen in sogenannten Containern auszuführen. Diese Container können aufeinander aufbauen und miteinander kommunizieren. Beispiele für diese Anwendungen wären zum Beispiel ein Apache Server oder eine MySQL Datenbank. Der Unterschied zu normalen virtuellen Maschinen liegt darin, dass nicht jeder Container ein komplettes Betriebssystem – zum Beispiel Ubuntu 14.04 – mitbringen muss sondern nur die wichtigen Daten für die Anwendung enthält. Wollen wir den Webserver vom Datenbankserver trennen müssten wir also zwei komplette virtuelle Maschinen inklusive Betriebssystem starten. In Docker sind das einfach zwei unabhängige Container, die die jeweiligen Server starten. In der Webentwicklung bringt uns das einen entscheidenden Vorteil: Wir können die Serverumgebung, auf der später unsere Webanwendung laufen wird, genau auf unserem eigenen Rechner nachbilden – egal ob dieser mit Windows, Linux oder OS X läuft. Kompatibilitätsprobleme gehören damit also der Vergangenheit an. Außerdem können wir die Docker Container ganz einfach an Teamkollegen weitergeben, damit alle am selben Strang ziehen und auf derselben Umgebung entwickeln. Dieses Verteilen der Docker Container findet über das Docker Hub statt. Aus einem fertig konfigurierten Container können wir ganz simpel ein sogenanntes Image – also ein Abbild des Containers – bilden und dieses ins zentrale Docker Hub hochladen. Dort ist es dann entweder privat oder öffentlich für andere Leute zugänglich und diese können es bei sich benutzen. Verwirrt? Keine Angst, all das machen wir in den Folgeartikeln ganz langsam und Schritt für Schritt. Einen weiteren großen Vorteil möchte ich aber noch erwähnen. Docker lässt uns nicht nur die Produktivumgebung abbilden, wir können diese bei diversen Cloud-Hosting Anbietern wie beispielsweise Amazon Web Services sogar mit Hilfe unserer Docker Images einrichten. Das bedeutet einfach wir entwickeln unser Docker Image und konfigurieren es genau so wie wir es brauchen und sagen AWS dann So, und jetzt starte bitte einen Server der genau das kann. Das ist auch der eigentliche Grund, warum ich mich selber näher mit dem Thema Docker beschäftigt habe und natürlich gehe ich auch darauf näher ein.
  18. Einen Container können wir uns als Schlafkabine in einem (rollenden) Hotel vorstellen. Auch hier gibt es kleinere ( Einzelkabinen ) und größere ( Doppelzimmer ). Alle Einheiten nutzen aber gemeinsame Ressourcen. ( Motor, Toilette, Küche etc. ) Dennoch sind die einzelnen Einheiten in sich ein geschlossener Bereich. ( Tür ). Da nur ein Motor vorhanden, bleibt der CO2 Ausstoß gleich, egal, wie viele Einheiten bewohnt ( aktiv ) sind. Bei einem Update ( Bremssystem ) muss dies nur einmalig erfolgen. Doch kann ein Softwarefehler oder eine Sicherheitslücke das gesamte System in Mitleidenschaft ziehen. Das ist bei Virtualisierung, die mit ihrer Hardwareunterstützung von "echter" Isolierung profitiert, nicht möglich. Eine Kernel-Panic in einer VM hat keine Auswirkung auf weitere, auch wenn sie auf der gleichen physischen Maschine gehostet sind. Passiert das Gleiche auf einem Container-Host, stürzen alle Container gleichzeitig über die Klippe.
  19. Platz, der benötigt wird, um 60 Personen zu transportieren
  20. Für beide gilt aber: Nicht übertreiben.
  21. Was ist Docker? Docker gibt uns die Möglichkeit, Anwendungen in sogenannten Containern auszuführen. Diese Container können aufeinander aufbauen und miteinander kommunizieren. Beispiele für diese Anwendungen wären zum Beispiel ein Apache Server oder eine MySQL Datenbank. Der Unterschied zu normalen virtuellen Maschinen liegt darin, dass nicht jeder Container ein komplettes Betriebssystem – zum Beispiel Ubuntu 14.04 – mitbringen muss sondern nur die wichtigen Daten für die Anwendung enthält. Wollen wir den Webserver vom Datenbankserver trennen müssten wir also zwei komplette virtuelle Maschinen inklusive Betriebssystem starten. In Docker sind das einfach zwei unabhängige Container, die die jeweiligen Server starten. In der Webentwicklung bringt uns das einen entscheidenden Vorteil: Wir können die Serverumgebung, auf der später unsere Webanwendung laufen wird, genau auf unserem eigenen Rechner nachbilden – egal ob dieser mit Windows, Linux oder OS X läuft. Kompatibilitätsprobleme gehören damit also der Vergangenheit an. Außerdem können wir die Docker Container ganz einfach an Teamkollegen weitergeben, damit alle am selben Strang ziehen und auf derselben Umgebung entwickeln. Dieses Verteilen der Docker Container findet über das Docker Hub statt. Aus einem fertig konfigurierten Container können wir ganz simpel ein sogenanntes Image – also ein Abbild des Containers – bilden und dieses ins zentrale Docker Hub hochladen. Dort ist es dann entweder privat oder öffentlich für andere Leute zugänglich und diese können es bei sich benutzen. Verwirrt? Keine Angst, all das machen wir in den Folgeartikeln ganz langsam und Schritt für Schritt. Einen weiteren großen Vorteil möchte ich aber noch erwähnen. Docker lässt uns nicht nur die Produktivumgebung abbilden, wir können diese bei diversen Cloud-Hosting Anbietern wie beispielsweise Amazon Web Services sogar mit Hilfe unserer Docker Images einrichten. Das bedeutet einfach wir entwickeln unser Docker Image und konfigurieren es genau so wie wir es brauchen und sagen AWS dann So, und jetzt starte bitte einen Server der genau das kann. Das ist auch der eigentliche Grund, warum ich mich selber näher mit dem Thema Docker beschäftigt habe und natürlich gehe ich auch darauf näher ein.
  22. Containers Containers are an abstraction at the app layer that packages code and dependencies together. Multiple containers can run on the same machine and share the OS kernel with other containers, each running as isolated processes in user space. Containers take up less space than VMs (container images are typically tens of MBs in size), and start almost instantly. virtual machines Virtual machines (VMs) are an abstraction of physical hardware turning one server into many servers. The hypervisor allows multiple VMs to run on a single machine. Each VM includes a full copy of an operating system, one or more apps, necessary binaries and libraries - taking up tens of GBs. VMs can also be slow to boot.
  23. Cgroups = control groups https://www.slideshare.net/albertspijkers/red-hat-enterprise-linux-7-rc-linux-containers-roadmap
  24. Mac & Windows 10 for DEV Windows Server 2016, RHEL & CentOS for PROD
  25. MobyLinux will be installed if not exists 08:06:35.200][HyperV ][Info ] VM MobyLinuxVM does not exist [08:06:35.200][HyperV ][Debug ] [stop] took 00:00:00.0660234 to run [08:06:35.200][OptimizeDisk ][Info ] Optimize [08:06:35.200][PowerShell ][Info ] Run script... [08:06:35.216][Moby ][Info ] Stop [08:06:35.216][HyperV ][Info ] Create [08:06:35.216][HyperVGuids ][Info ] Installing GUIDs... [08:06:35.216][PowerMode ][Info ] Start [08:06:35.216][PowerShell ][Info ] Run script with parameters: -Create True -VhdPathOverride -SwitchSubnetAddress 10.0.75.0 -SwitchSubnetMaskSize 24 -CPUs 1 -Memory 2048 -IsoFile C:\Program Files\Docker\Docker\Resources\mobylinux.iso... [08:06:35.216][Firewall ][Info ] Removing all existing rules... [08:06:35.216][HyperVGuids ][Info ] GUIDs installed [08:06:35.232][HyperV ][Info ] Script started at 08:06:35.232 [08:06:35.263][HyperV ][Info ] Module loaded at 08:06:35.263 [08:06:35.348][Firewall ][Info ] All existing rules are removed. [08:06:35.348][Firewall ][Info ] Opening ports for C:\Program Files\Docker\Docker\Resources\com.docker.proxy.exe... [08:06:35.363][Firewall ][Info ] Opening ports for SMB... [08:06:35.383][Firewall ][Info ] Ports are opened [08:06:35.417][HyperV ][Info ] Creating Switch: DockerNAT... [08:06:40.830][HyperV ][Info ] Switch created. [08:06:44.218][HyperV ][Info ] Set IP address on switch [08:06:44.234][HyperV ][Info ] Creating VM MobyLinuxVM... [08:06:45.289][HyperV ][Info ] Setting CPUs to 1 and Memory to 2048 MB [08:06:45.590][HyperV ][Info ] Attach VHD C:\Users\Public\Documents\Hyper-V\Virtual Hard Disks\MobyLinuxVM.vhdx [08:06:46.107][HyperV ][Info ] Connect Internal Switch DockerNAT [08:06:47.141][HyperV ][Info ] Attach DVD C:\Program Files\Docker\Docker\Resources\mobylinux.iso [08:06:47.843][HyperV ][Info ] Disabled Gastdienstschnittstelle [08:06:47.880][HyperV ][Info ] Enabled Takt [08:06:47.927][HyperV ][Info ] Disabled Austausch von Schlüsselwertepaaren [08:06:47.965][HyperV ][Info ] Enabled Herunterfahren [08:06:47.996][HyperV ][Info ] Enabled Zeitsynchronisierung [08:06:48.028][HyperV ][Info ] Disabled VSS [08:06:48.466][HyperV ][Info ] VM created. [08:06:48.482][HyperV ][Debug ] [create] took 00:00:13.2656216 to run [08:06:48.482][PowerShell ][Info ] Run script '(Get-VM MobyLinuxVM).Id.Guid'... [08:06:48.767][Database ][Info ] Generating CA Cert Bundle [08:06:48.845][DataKit ][Info ] Starting com.docker.db.exe 0.7.0-34-g6f04213 ...
  26. https://stefanscherer.github.io/run-linux-and-windows-containers-on-windows-10/ start http://localhost & 'C:\Program Files\Docker\Docker\DockerCli.exe' -SwitchDaemon
  27. https://www.slideshare.net/Docker/docker-and-microsoft-windows-server-2016-technical-deep-dive https://pbs.twimg.com/media/CRS7O5zVEAAeuPF.png:large
  28. Über Features den Container support aktivieren
  29. DAS alleine reicht aber noch nicht. Das feature ist zwar essentieller Bestandteil, aber damit haben wir Docker noch nicht installiert. Resultat: -> next slide
  30. https://github.com/oneget/oneget NuGet provider is required to continue PowerShellGet requires NuGet provider version '2.8.5.201' or newer to interact with NuGet-based repositories. The NuGet provider must be available in 'C:\Program Files\PackageManagement\ProviderAssemblies' or 'C:\Users\jianyunt\AppData\Local\PackageManagement\ProviderAssemblies'. You can also install the NuGet provider by running 'Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force'. Do you want PowerShellGet to install and import the NuGet provider now? [Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): y
  31. error during connect: Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.26/containers/json: open //./pipe/docker_engine: The system cannot find the file specified. In the default daemon configuration on Windows, the docker client must be run elevated to connect. This error may also indicate that the docker daemon is not running.  Start-Service Docker
  32. Here we run Docker on a Raspberry Pi. So the CPU architecture here is ARM rather than x86/x64 by Intel or AMD. Thus, Docker-based apps you use have to be packaged specifically for ARM architecture! Docker-based apps packaged for x86/x64 will not work and will result in an error such as: FATA[0003] Error response from daemon: Cannot start container 0f0fa3f8e510e53908e6a459e817d600b9649e621e7dede974d6a65761ad39e5: exec format error
  33. 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). The CLI uses the Docker REST API to control or interact with the Docker daemon through scripting or direct CLI commands. Many other Docker applications use the underlying API and CLI. The daemon creates and manages Docker objects, such as images, containers, networks, and volumes.
  34. # docker build -t nginx-minimal -f Dockerfile . # docker images REPOSITORY TAG IMAGE ID CREATED SIZE nginx-minimal latest 338f05f8f4da 6 seconds ago 6.742 MB # docker tag 338f05f8f4da eknori/docker:nginx-minimal # docker images REPOSITORY TAG IMAGE ID CREATED SIZE eknori/docker nginx-minimal 338f05f8f4da 3 minutes ago 6.742 MB nginx-minimal latest 338f05f8f4da 3 minutes ago 6.742 MB
  35. # docker push eknori/docker:nginx-minimal The push refers to a repository [docker.io/eknori/docker] 3cdcfe12ccdf: Pushed 2cca2319326a: Pushed 09ddfe882dc2: Pushed 9419805b2450: Pushed 2e352b632e3e: Pushed 77bb3ffa4bc3: Pushed nginx-minimal: digest: sha256:d588601bde9824fa9aa86de9b811 ... size: 1566
  36. # docker push eknori/docker:nginx-minimal The push refers to a repository [registry.access.redhat.com/eknori/eknori/docker] b07a4e9320f9: Preparing c7c46ef08857: Preparing 9ed48b0e340d: Preparing b66ed4eb6b27: Preparing 77bb3ffa4bc3: Waiting error parsing HTTP 405 response body: invalid character '<' looking for beginning of value: "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 3.2 Final//EN\">\n<title> 405 Method Not Allowed</title>\n<h1>Method Not Allowed</h1>\n<p>The method POST is not allowed for the requested URL.</p>\n"
  37. # nano /etc/sysconfig/docker ... # If you want to add your own registry to be used for docker search and docker # pull use the ADD_REGISTRY option to list a set of registries, each prepended # with --add-registry flag. The first registry added will be the first registry # searched. # ADD_REGISTRY='--add-registry registry.access.redhat.com' ...
  38. Wir erstellen zunächst ein IMAGE, in dem ein vorinstalliertes, NICHT konfigurierter Domino 9.0.1 enthalten ist. Wir können hier schon weitere Konfigurationen vornehmen, die wir bei der Einrichtung eines Domino Servers durchführen würden. Dazu gehört neben dem Erstellen eines „notes“ users und des Setzens de soft / hard nofile Einträge auch das Kopieren der Startscrits von Daniel Nashed an die richtige Stelle. Zudem können wir Dateiberechtigungen und weitere benötigte Schritte durchführen. Über die response.dat können wir die Installation weiter konfigurieren, so daß wir für unterschiedliche Zwecke unterschiedliche Domino IMAGES bereitstellen.
  39. docker run -it -p 1353:1352 -p 8888:80 -p 8443:443 --name 901FP9 -v domino_data:/local/notesdata eknori/domino:domino_9_0_1_FP_9
  40. # subscription-manager register --username john.doe@foo.bar --password mySecretPassword --auto-attach --force # subscription-manager repos --enable=rhel-7-server-extras-rpms # yum update # vi /etc/selinux/config SELINUX=disabled # reboot
  41. # yum install -y kubernetes etcd # systemctl stop firewalld # systemctl disable firewalld Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service. Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service. # vi /etc/kubernetes/apiserver # change # default admission control policies #KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle, ... " KUBE_ADMISSION_CONTROL=""
  42. # systemctl restart etcd kube-apiserver kube-controller-manager kube-scheduler # systemctl enable etcd kube-apiserver kube-controller-manager kube-scheduler Created symlink from /etc/systemd/system/multi-user.target.wants/etcd.service to /usr/lib/systemd/system/etcd.service. Created symlink from /etc/systemd/system/multi-user.target.wants/kube-apiserver.service to /usr/lib/systemd/system/kube-apiserver.service. Created symlink from /etc/systemd/system/multi-user.target.wants/kube-controller-manager.service to /usr/lib/systemd/system/kube-controller-manager.service. Created symlink from /etc/systemd/system/multi-user.target.wants/kube-scheduler.service to /usr/lib/systemd/system/kube-scheduler.service. # systemctl restart kube-proxy kubelet docker # systemctl enable kube-proxy kubelet docker Created symlink from /etc/systemd/system/multi-user.target.wants/kube-proxy.service to /usr/lib/systemd/system/kube-proxy.service. Created symlink from /etc/systemd/system/multi-user.target.wants/kubelet.service to /usr/lib/systemd/system/kubelet.service. Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service. # kubectl get node NAME STATUS AGE 127.0.0.1 Ready 48s
  43. apiVersion: v1 kind: Pod metadata: name: proxy-pod labels: app: proxy-pod spec: containers: - name: nginx-proxy image: "eknori/docker:nginx-alpine" ports: - containerPort: 80 hostPort: 8888
  44. https://www.ibm.com/support/knowledgecenter/SSBS6K_1.2.0/kc_welcome_containers.html
  45. 124