4. 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
5. Connections 6 – The beginnings of Pink
To move to Pink, you must first be on Connections 6.
Orient Me
6. 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
8. 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
17. 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)
19. Solomon Hykes: The future of Linux containers
https://www.youtube.com/watch?v=wW9CAH9nSLs
20. 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.
25. Transforming application architecture
• Monolitic application
• Slow changing
• Big server
• Loosely coupled services
• Rapidly updated
• Many small servers
~2000 Today
26. 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.
32. 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.
63. 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
76. 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.
87. 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.
126. Ulrick Krause – Der Wal in der Kiste
Montag, 18.09.2017 14:00 – 15:30
127.
128. 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.
Editor's Notes
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
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
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
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.
Mittlerweile 10.5 – 12 Mrd be einer Wachstumsrate von 1 Mrd / 4-5 Wochen
Alle Komponenten von Docker sind OpenSource
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.
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.
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.
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.
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.
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.
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
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.
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.
Platz, der benötigt wird, um 60 Personen zu transportieren
Für beide gilt aber: Nicht übertreiben.
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.
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.
Cgroups = control groups
https://www.slideshare.net/albertspijkers/red-hat-enterprise-linux-7-rc-linux-containers-roadmap
Mac & Windows 10 for DEV
Windows Server 2016, RHEL & CentOS for PROD
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 ...
DAS alleine reicht aber noch nicht. Das feature ist zwar essentieller Bestandteil, aber damit haben wir Docker noch nicht installiert. Resultat: -> next slide
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
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
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
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.
# 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
# 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
# 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"
# 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'
...
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.
# 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