Upload
nguyennguyet
View
215
Download
0
Embed Size (px)
Citation preview
www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 1
IT. Menschen. Leidenschaft.
Überschrift.Grundlagen Docker und Datenbanken.Heiko Stein – Senior Cloud Architekt
www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 2
IT. Menschen. Leidenschaft.
etomer - Just the facts.etomer - Just the facts.
> 950
Personenjahre Erfahrung
im der IT
100%
Folgebeauftragung nach
Erstauftrag
> 600
Personentage Planung
pro Jahr
96%Beauftragungsquote nach
technischem Erstkontakt
0%ungeplante Downtime bei
Konzepten der etomer
> 5.200
Personentage Betrieb
pro Jahr
> 1.200
Personentage Consulting
pro Jahr
86%aller von uns betriebenen
Systeme sind Mission-
Critical
>150erfolgreiche Proof-of-
Concepts
14 Jahreerfolgreiche Beratung zu
Enterprise- und Cloud-
Computing
>60Berater im Onsite
und
Remote
>1.000erfolgreiche Projekte
www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 3
IT. Menschen. Leidenschaft.
etomer - Just the facts.Agenda.
1 Einstieg und Historie Docker.
2 Grundlagen Docker.
3Docker und Datenbanken - was ist zu
beachten
4 Docker und Oracle Datenbanken.
www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 4
IT. Menschen. Leidenschaft.
etomer - Just the facts.Was ist Docker ?
Docker sind leichtgewichtige, isolierte
Laufzeitumgebungen (Container), basierend
Standardfunktionen des Linux-Kernel.
Docker ist keine Virtualisierung, kann aber zur
Applikations-/Service-Virtualisierung genutzt werden.
Build
Ship
Run
www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 5
IT. Menschen. Leidenschaft.
etomer - Just the facts.Ein paar Daten.
Plattformen:- Linux
- Mac OS X
- Windows
Docker Inc:- Invest 120 Mill. $
Projekte:- DOCKER ENGINE
- Create and runs Docker Containers
- DOCKER COMPOSE
- Define multi-container applications
- DOCKER REGISTRY
- Open source Docker image distribution
- DOCKER MACHINE
- Automated Docker Provisioning
- DOCKER SWARM
- Host clustering and container
scheduling
- KITEMATIC
- Desktop User Interface for Docker
Release:- 0.1 (03/13)
- …
- 1.11 runC/containerd (OCI)
- …
- 1.12 swarmkit in Dockerengine
integriert
- …
- 17.0 Community Edition (CE) /
Enterprise Edition (EE)
- …
- 17.12.0-[ce|ee]
www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 6
IT. Menschen. Leidenschaft.
etomer - Just the facts.Wofür kann Docker verwendet werden ?
Isolation/Encapsulation von
Applikationen/Services in
Container
Deployment und Betrieb
skalierbarer, agiler Umgebungen
PaaS, App-
Distribution für
Fachabteilungen,
DevOps
Lifecyclemanagement,
Continuous Delivery,
Microservices und
Selfcontained Systems
www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 7
IT. Menschen. Leidenschaft.
etomer - Just the facts.Agenda.
1 Einstieg und Historie Docker.
2 Grundlagen Docker.
3Docker und Datenbanken - was ist zu
beachten
4 Docker und Oracle Datenbanken.
www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 8
IT. Menschen. Leidenschaft.
etomer - Just the facts.Die Docker-Architektur.
Der Docker-Client CLI interagiert mit dem
Docker-Daemon über Unix-Domain-
Socket(non-networked) und remote via
REST-API.
Der Docker-Daemon stellt den
docker-service auf dem Docker
Host zur Verwaltung der
Instanzen zur Verfügung.
Docker Registries sind der
Distributionsservice für Docker
Images.
Ein Docker-Image ist ein
transportables Read-only-
Template für Container.
Docker-Container sind
instanzierte und gestartete
Images.
www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 9
IT. Menschen. Leidenschaft.
etomer - Just the facts.Etwas technischer Hintergrund.
Docker
Linux cgroups namespaces overlay-fs
Isolationsfeatures für CPU/Memory, Netz-I/O, Prozessraum. Linux layered Filesystem.
Container Runtime Interface(Containerengine)
Execution Environment(libcontainer/libvirt/systemd-nspawn/…)
• Schnittstelle
zum Kernel
• CLI
• Rest-API
• Socket-API
www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 10
IT. Menschen. Leidenschaft.
etomer - Just the facts.Noch etwas etwas technischer Hintergrund – driver/libcontainer.
Container
docker-daemon
Execution driver API
Native execution driver
libcontainer
Dockerengine
runC
OCI
Kompatibilität
www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 11
IT. Menschen. Leidenschaft.
etomer - Just the facts.Prozessmodell.
systemd/upstart/xinit
docker run …
docker engine
containerd
runC
Applikation
Prozessmodell
www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 12
IT. Menschen. Leidenschaft.
etomer - Just the facts.
ContainerContainer
Docker in Schichten.
Server
Operating System
Docker Engine
Container
Libraries/Binaries
App
bootfs / kernel (namespaces/cgroups/overlay-fs)
base image (ubuntu/centos/…)
app1
app2
Image
(r/o)
r/w Layer
Container
- Alle benötigten Komponenten für die Lauffähigkeit der
Applikation(en) befinden sich im Image
- Für die Persistierung von Daten ist die Bereitstellung von
Storageentitäten in den Container möglich bzw. nötig
Docker Engine
www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 13
IT. Menschen. Leidenschaft.
etomer - Just the facts.Agenda.
1 Einstieg und Historie Docker.
2 Grundlagen Docker.
3Docker und Datenbanken - was ist zu
beachten
4 Docker und Oracle Datenbanken.
www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 14
IT. Menschen. Leidenschaft.
etomer - Just the facts.Docker und Datenbanken – Generelle Themen.
StorageCPU
Memory
SecurityNetzwerk
www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 15
IT. Menschen. Leidenschaft.
etomer - Just the facts.Umsetzung Security & Compliance.
Securing RegistrySecurity/Compliance Dockerhost
Securing
Dockerdaemon
bzw. Client
Kommunikation
Security/Compliance
Dockerimages
Security Dockercontainer,Runtime und Dockervolumen
www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 16
IT. Menschen. Leidenschaft.
etomer - Just the facts.Memory.
• Size Memory (resident) definieren / limitieren• memory-reservation, memory-swap
• memory-swappiness, kernel-memory
• oom-kill-disable
• Size Shared Memory definieren / erhöhen
• shm-size
• Java • Innerhalb des Container immer Heap-Size definieren / MaxRAM /
+UseCGroupMemoryLimitForHeap / …
# docker run -d -it --memory=2g --memory-swap=6g --name MYDB …
# docker run –-memory=1G --rm store/oracle/serverjre:8 java -XX:MaxRAM=1024m …
www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 17
IT. Menschen. Leidenschaft.
etomer - Just the facts.CPU.
• CPU-Nutzung limitieren, um die Kompromittierung des Dockerhost zu
vermeiden (… gemeinsamer Kernel, gemeinsame Resourcen)
• cpus, cpu-period, cpuset-cpus, cpu-shares, …
• Nicht Lizenzrelevant !!!
- Alle 50ms Nutzung von 50% aller Cpu’s
# docker run -ti --cpu-period=50000 --cpu-quota=25000 …
- Nutzung von CPU1, CPU2
# $ docker run -ti --cpuset-cpus="1,3" …
- Nutzung von 50 % aller CPU’s pro Sekunde
# $ docker run -ti –cpu=.5 …
www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 18
IT. Menschen. Leidenschaft.
etomer - Just the facts.Netzwerk.
Dockerhost
Container Container Container Container
• Kommunikation von Datenbanken, weiteren Services etc. zwischen Containern
via Overlay-Netzwerke absichern
• vxlan
• iptables
• Loadbalancing im Swarm-Mode via Ingress Network
• Externe Loadbalancer können den Service via PublishedPort adressieren
www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 19
IT. Menschen. Leidenschaft.
etomer - Just the facts.Storage.
Docker persistiert
keine Daten …Das ist jetzt aber
ärgerlich !
www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 20
IT. Menschen. Leidenschaft.
etomer - Just the facts.Storage – 2 Fragen.
Welcher Storagedriver ?• Files im Container …
• Achtung, Unterschiede in den Default-Storagedriver
Docker EE/CE für verschiedene Linux-Derivate• https://success.docker.com/article/Compatibility_Matrix
Welcher Mount-Typ?• Oder wohin mit den Data-Files ?
www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 21
IT. Menschen. Leidenschaft.
etomer - Just the facts.Storage – Storagedriver, WER für WAS.
https://docs.docker.com/engine/userguide/storagedriver/selectadriver/
www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 22
IT. Menschen. Leidenschaft.
etomer - Just the facts.Storage – Storagedriver, WER für WAS.
https://success.docker.com/article/Compatibility_Matrix
EE 17.03 EE 17.06
Storage Driver
CentOS: devicemapper CentOS: devicemapper
Oracle Linux: devicemapperOracle Linux: devicemapper
RHEL: devicemapperRHEL: devicemapper,
overlay26
SLES: btrfs SLES: btrfs
Ubuntu: aufs3 Ubuntu: aufs3
www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 23
IT. Menschen. Leidenschaft.
etomer - Just the facts.Storage.
www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 24
IT. Menschen. Leidenschaft.
etomer - Just the facts.Storage – Host Volume.
- Werden implizit durch docker angelegt.
- Befindet sich auf dem Dateisystem des Docker-Hosts und wird über
den Container angesprochen
- Ablage einem einem definierbaren statischen Pfad
- Flexible Ablage der Daten bezüglich des genutzten Verzeichnisses
und somit der genutzten Devices (SAN/local/…)
- Vorsicht bei Shared Storage Architekturen !
- Vor Nutzung als Datastore sind die Berechtigungen entspechend zu
setzen
# docker run -v /path/on/host:/path/in/container ...
www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 25
IT. Menschen. Leidenschaft.
etomer - Just the facts.Storage – Anonymous Volumen.
- Werden implizit durch Docker angelegt und verwaltet
- Einfach in der Erstellung und Nutzung
- Nachnutzung in anderen Container ist kompliziert
# docker run -v /path/in/container ...
www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 26
IT. Menschen. Leidenschaft.
etomer - Just the facts.Storage – Named Volumen.
- Named Volumen sind in Prinzip ähnlich zu Anonymous Volumes
- Werden explizit durch docker angelegt und verwaltet, aber mit
einem eindeutigen Namen versehen
- Ablage unter /var/lib/docker/volumes/<name>
- Gehören per default root
# docker volume create namedv
# docker run -v namedv:/path/in/container ...
# docker volume inspect namedvOutput[ { "CreatedAt": "2018-01-21T21:02:53Z", "Driver": "local", "Labels": {}, "Mountpoint": "/var/lib/docker/volumes/namedv/_data", "Name": "DataVolume1", "Options": {}, "Scope": "local" } ]
www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 27
IT. Menschen. Leidenschaft.
etomer - Just the facts.Agenda.
1 Einstieg und Historie Docker.
2 Grundlagen Docker.
3Docker und Datenbanken - was ist zu
beachten
4 Docker und Oracle Datenbanken.
www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 28
IT. Menschen. Leidenschaft.
etomer - Just the facts.Status – Was geht ?
- Oracle Database ist komplett supported in Docker
- 11g / 12c
- Oracle Linux 7/UEK 4
- RHEL 7
- 3 Varianten für Oracle in docker
- Images aus der Oracle Container Registry &
- Images aus dem Docker Store
- Docker Buildfiles vom GitHub
- Docker Container enthalten Single-PDB/CDB
www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 29
IT. Menschen. Leidenschaft.
etomer - Just the facts.Status – Was geht (noch) nicht ?
- Folgende Features sind noch nicht freigegeben/nicht
unterstützt:
- Oracle Data Guard
- ASM
- Multiples Oracle Homes
- Oracle Grid Infrastructure
- Multiple Instanzen in einem Container
- Automatic Memory Management (AMM)
www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 30
IT. Menschen. Leidenschaft.
etomer - Just the facts.Hinweise.
Filesystem:
- Btrfs für Dockerfiles
- Ext4, XFS für Datenbankfiles
Docker:
- Docker CE auf Oracle Linux
- Docker CE und Oracle Linux sind kostenlos für Oracle
DB’s
- Docker Corp. unterstützt nur Docker EE für Oracle
Linux und RHEL
www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 31
IT. Menschen. Leidenschaft.
etomer - Just the facts.Hinweise.
Dockerhost/OS:
- /dev/shm wird wird Default ohne Exec Permissions
gemappt
- Bei Einstellungen der Kernelparameter müssen alle
ggf. auf diesem Host gestarteten Container
berücksichtigt worden
# docker run -v /dev/shm --tmpfs/dev/shm:rw,nosuid,nodev,exec,size=2g ...
www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 32
IT. Menschen. Leidenschaft.
etomer - Just the facts.Run Oracle Database.
Erstellung eigenes DB-Image mittels Dockerfile vom- https://github.com/oracle/docker-
images/tree/master/OracleDatabase/dockerfiles
# buildDockerImage.sh- oder# docker build --force-rm=true --no-cache=true –t oracle/database:12.2.0.1-ee -f Dockerfile.ee .
Start eines DB-Image (selbst erstellt oder vom GitHub):
# docker run --name <Oracle-DB> -p 1521:1521 -p 5500:5500 -e ORACLE_SID=<SID> \-e ORACLE_PWD=<PASSWORD> -e ORACLE_CHARACTERSET=<CHARACTERSET> \-e ORACLE_CONTAINERDB=false oracle/database:12.2.0.1-ee
www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 33
IT. Menschen. Leidenschaft.
etomer - Just the facts.Run Oracle Database.
Dockerstore:
# docker login
# docker run -d -it --name <Oracle-DB> store/oracle/databaseenterprise:
12.2.0.1
# docker exec -it <Oracle-DB> bash -c "source
/home/oracle/.bashrc; sqlplus /nolog"
www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 34
IT. Menschen. Leidenschaft.
etomer - Just the facts.Diskussion.
Fragen ?
www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 35
IT. Menschen. Leidenschaft.
etomer - Just the facts.Quellen.
• Docker Dokumentation• https://docs.docker.com/
• Docker Blogs• https://blog.docker.com/
• Docker Release Notes• https://github.com/docker/docker/releases/
• Docker & Oracle• https://blogs.oracle.com/developers/three-new-open-source-container-utilities
• https://github.com/oracle/docker-images
• https://developer.oracle.com/containers
• https://apex.oracle.com/pls/apex/germancommunities/dbacommunity/tipp/6241/index.h
tml
• https://store.docker.com/images/oracle-database-enterprise-edition/plans/08cf8677-
bb8f-453c-b667-6b0c24a388d4?tab=instructions
• MOS
• Oracle Support for Database Running on Docker (MOS Note 2216342.1)
www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 36
IT. Menschen. Leidenschaft.
Überschrift.
Vielen Dank für ihre Aufmerksamkeit.