SlideShare a Scribd company logo
1 of 78
Lucas Jellema
AMIS Platform SIG - 1 October 2015
Introduction to
automated environment management
with Docker Containers
- for platform specialists and
developers
2
Overview
3
Overview
• Docker – what is behind the hype?
• A grasp on terminology such as Container, Build, Ship and Run
– Images, registry, micro services,
• Enough to participate in the discussion
• How to get started and going with Docker
– On Windows (or Mac OS)
• What can Docker mean to me
– In my personal R&D environment
– In my daily work situation
• What’s Oracle’s position regarding Docker?
• What is Docker’s current status and near by future
• Handson resulting in
– A Docker enabled environment
– Several containers running (Ubuntu, Wordpress, Oracle 11g XE DB, JDeveloper)
– A stepping stone for creating additionals containers and interdependencies
4
What can Docker give us
(developers/platform specialists)
• An efficient way – in terms of work and physical machine resources – to
rapidly create, easily manage isolated environments
– That can be created and deleted easily
– That start and stop rapidly
– That can be exchanged simply
– That consume minimal system resources
• Use cases:
– Quickly try out some software (release) – without upsetting your laptop
– Easily create and distribute a complete training environment
– Prepare an environment for deployment to a cloud environment
– Locally construct and test a potentially complex environment that is then transfered
to a shared infrastructure
– Implement a micro services infrastructure
– Emulate/Test complex clusters on a single host
5
Docker - Run
6
Demo – Run our first container
dockerhost
port 80
IP 172.17.0.6
7
Demo – Run a second container
based on same image
8
Demo – two running NGINX
containers; port forwarding for one
port 80
port 80
port 90
IP 172.17.0.7
IP 172.17.0.6
9
Demo: run container in
interactive mode using shell
dockerhost
/tmp/mynewfile.txt
10
Demo: restart container and
attach to locate my file
dockerhost
/tmp/mynewfile.txt
11
Final status demo: Running Multiple
Containers in a Single Linux Host
port 90 port 80
port 80
/tmp/mynewfile.txt
/var/lib/docker/aufs/diff/…
6af69dd33af4…/tmp/mynewfile.txt
12
Run
• Docker Container runs Linux – as does the host
• Container is isolated - feels as
stand alone run time environment
– Directory structure, IP address, users and groups
• Shared resources with underlying host
(and therefore other containers)
– memory, CPU, host
• Light weight:
– Quick starting up and stopping
– Leverages underlying Linux, only adds what is different/additional
• Clusters of containers
– Dynamic adding/removing containers from clusters can be done very quickly (Google)
– Especially when containers are stateless
– (no shared session state in containers; possibly in joint cache, shared file system or
NoSQL database)
• Management tools – to monitor and manage individual containers and clusters
of containers (dynamically scale up/scale down)
Docker Host
Docker Container
Docker Container
• ip address
• directories & files
• users & groups
• process table
13
When it walks and talks like a
Virtual Machine…
• Virtual Machine vs Container
14
Containers vs Virtual Machines
• Containers do not run through a hypervisor
– They are logically isolated from the host and each other
– They run the same kernel as the host (i.e. Linux!)
• Containers share resources (the kernel) with host
– the rest of the OS can be unique per container (namespaces on host in mounts,
process table, network resources)
• Containers are based on images defined in a layered file system; all
containers based on the same image share the image definition
– Adding a copy-on-write file system layer
– 50 containers based on the same image require same file system resources as 1
container – until they start changing or creating files
• Containers start, stop, restart in seconds
• Containers do not have physical resources (memory, CPU) pre-allocated
– Resources are allocated at run time
15
Docker is a high level API on
core Linux Kernel features
• Solaris Zones and Windows Server offer similar isolation capabilities
16
Micro Services
• Architect the application into a set of collaborating services.
• Each service implements a set of narrowly, related functions.
• The services are elastic, resilient, composable, minimal, and complete.
• Services communicate using standard protocols such as HTTP/REST
• Services are developed
and deployed independently
of one another.
• Each service manages its own state
17
Micro Services
• With Docker, each Micro Service is implemented with a single container
– The micro service is not just encapsulated functionality that needs to be deployed
onto some platform (such as an ESB or BPEL engine)
– instead it ships complete with the fully configured engine that runs in the
standardized container platform
• All you need to run is:
– Start container. Period.
Linux Host + Docker Engine
18
A more complex network of
microservices…
19
Micro Services and containers
• Containers can run on the same host
– Or on different hosts
• Containers can be run as a single node
– Or scale up to run as many nodes
• Containers can easily be replaced by other containers
– That can be connected to in the same way
dockerhost
my-little-container
my-tiny-container
my-data-container
Simple Docker UI
GUIs for monitoring & managing a
Docker runtime environment
21
GUIs for monitoring & managing a
Docker runtime environment
• Dockland - Yet another docker web UI
– https://github.com/dynport/dockland
• Shipyard – a web UI for Docker
– https://github.com/ehazlett/shipyard
• DockerUI – Web interface to interact with the Docker Remote API
– https://github.com/crosbymichael/dockerui
• Simple Docker UI
– https://github.com/felixgborrego/docker-ui-chrome-app
• Panamax
– https://github.com/CenturyLinkLabs/panamax-ui
22
Docker – Ship and Run
23
Demo Ship
Run MySQL and Wordpress
24
Running Wordpress instance
by pulling two public images
port 8080 port 80
dockerhostvm
IP: 10.10.10.29
Docker Hub
25
Commit container as image
and push to registry
dockerhostvm
Docker Hub
/tmp/mynewfile.txt
Dockersig-trial:1.0
26
Image published on public
Docker Hub registry
27
Run container based on my
published image
dockerhostvm
Docker Hub
/tmp/mynewfile.txt
Dockersig-trial:1.0
Dockersig-
trial:1.0
28
Containers in the world of
physical logistics
29
Docker Containers Ship microservice –
app, libs, configuration, platform
ready to run on any Linux Host+Docker
30
Docker Registry
• Images can be published to Public and Private Registries
– Docker Hub is the default registry
– Docker Hub contains official repositories from many projects and vendors
– Private Registries can be created in the cloud and on premises
• Containers can be started from such images
Public Docker
Registry
Docker Hub
31
Registry
push
Private
Docker
Registry
Docker Hub
push
32
Docker &
Cloud
Public Docker
Registry
Docker Hub
33
How to Ship a Stand-Alone
product?
• Create Installers + Configuration Instructions?
• Make your product success dependent on platform configuration and OS
settings?
• Ship as a container – everything set up and ready to run!
• For example:
– RubiconRed – Preferred way to deliver their tool MyST: as Docker Container (image)
34
Docker – Build, Ship and Run
35
Demo Build
36
Demo run container after build
37
Demo Build – slightly more
advanced Dockerfile
38
Demo – run image created in
build process
39
Building a Docker Container
• The Build Steps are prescribed in Dockerfile
– Could be called the container recipe
• Docker commands specify:
– Start from Base Image
– Perform commands such as ADD, COPY, RUN
that modify the starting situation
– The Build Context contains the contents of the folder on the Docker host that
contains the Dockerfile (including sub folders)
• This can become quite large
• During build – files can be downloaded over HTTP using standard wget (but not copied from the host outside
the build context)
• All files added to the container become part of its history (and increase the size)
– Specify the default CMD to run when the
container is started
– Optionally: tag the container as image, push it to registry and start one or more
containers from the new image
40
Building a Docker Container
• Docker files specifies all build steps
– With fairly low level commands
• Start from base image - each step
in the Docker Script adds a layer
• A layer is
– A logical ‘savepoint’ in the container history
• That marks an intermediate ‘image’
– A physical directory somewhere on the Docker Host
Base Image
Ubuntu 14.04
FROM Ubuntu:14.04
COPY
RUN
WORKDIR
RUN
EXPOSE
CMD
COPY
RUN
RUN
Final
Image
41
Run a Docker Container
• When a Docker Container is run based on an image then all these
“physical” layers are combined into a “logical” read-only file system
– Union file system
– Copy-on-write
– Like a stack: higher layers may override lower layers
• A writable layer is added
for the running container
Base Image
Ubuntu 14.04
COPY
RUN
RUN
Base Image
Ubuntu 14.04
COPY
RUN
RUN
Writable Layer
run
Base Image
Ubuntu 14.04
COPY
RUN
RUN
Writable Layer
run
Standard
Image,
locally built
42
Build
• In addition to 10Ks of reusable images to start containers from
• There are a zilion Dockerfiles to leverage for building images
– Download script
– Add software packages and installers (because of license reasons)
– Tweak the script to fit your own needs
OR (preferably)
– Run the script, create a local image and then create your own Docker File that takes
this image as its starting point
Your Own
Dockerfile
Your Tweaked
Image
43
“Docker” Search results on
GitHub
44
For example: build container
for Oracle WebLogic
• Clone from GitHub to
Docker host
– Dockerfile
– Shell scripts
– Supporting files
• Download RPMs for
– JDK 8
– WebLogic 12.1.3
• Docker Build
• Optionally use second
Docker file on top of
WebLogic image to
create a WLS Domain
Standard
Oracle WebLogic
Image,
locally built
45
Build File for WebLogic
Base Image
Oraclelinux:7
RUN
COPY
RUN
COPY
COPY
COPY
46
Build File for WebLogic (2)
Base Image
Oraclelinux:7
RUN
COPY
RUN
COPY
COPY
COPY
RUN
RUN
RUN
RUN
RUN
Base Image
Oraclelinux:7
RUN
COPY
RUN
COPY
COPY
COPY
RUN
RUN
RUN
RUN
RUN
47
Turn container into image
Base Image
Oraclelinux:7
RUN
COPY
RUN
COPY
COPY
COPY
RUN
RUN
RUN
RUN
RUN
docker commit <container-id> weblogic:12.1.3-dev
48
Build File for WebLogic Domain
weblogic:12.1.3-dev
Base Image
Oraclelinux:
7
RUN
COPY
RUN
COPY
COPY
COPY
RUN
RUN
RUN
RUN
RUN
Base Image
Weblogic:12.1.3-
dev
COPY
RUN
Base Image
Oraclelinux:7
RUN
COPY
RUN
COPY
COPY
COPY
RUN
RUN
RUN
RUN
RUN
49
Build File for WebLogic Domain
(2)
Base Image
Weblogic:12.1.3-
dev
COPY
RUN
RUN
RUN
Base Image
Oraclelinux:7
RUN
COPY
RUN
COPY
COPY
COPY
RUN
RUN
RUN
RUN
RUN
50
Tag container as reusable
image
Base Image
Weblogic:12.1.3-
dev
COPY
RUN
RUN
RUN
Base Image
Oraclelinux:7
RUN
COPY
RUN
COPY
COPY
COPY
RUN
RUN
RUN
RUN
RUN
docker commit <container-id> weblogic-basedomain:12.1.3
oraclelinux:7
weblogic:
12.1.3-dev
weblogic-
basedomain:12.1.3
51
Build Microservice based on
WebLogic plus Custom App
Microservice:
custom app
oraclelinux:7
weblogic:
12.1.3-dev
weblogic-
basedomain:12.1.3
WLST deploy EAR
WLST config JMS
WLST config data sources Microservice:
database
52
Automated Configuration
Management
• Use of Shell Scripting to create | compose | configure environments is not
exactly the latest fashion
• Declarative, automated configuration management
tools have us specify what we need and then
make that happen
– No scripting
– Cross platform
– Parametrized
– Leveraging public catalogs of
environment definitions
Container Build process
• Regular Docker Build
– From base image
– Add Puppet support
– Add Puppet Manifests &
Modules
• Start Container
– Optional: Map Volume from
host with large files
– Run Puppet to apply Manifests
– Stop Container, Tag as Image
dockerhostvm
Dockerfile
my-base-container
/files
/puppet
/files
volume
1
Very big files
Advanced Docker Container
Build using Puppet
2
3
4
5
4
21
3
/puppet Manifests/Modules
5
54
Notes on
Using Puppet with Docker
• After applying Puppet – the container can be stopped, tagged and used as base
image for next Docker Build
– That could EXPOSE, ENV, CMD or ENTRYPOINT
• With some workarounds, Puppet apply can be made to run during Docker Build
(with RUN in Dockerfile)
– Less control over build context
– No Volume mapping from host
• There are Puppet Modules to use for automating the build pipeline of Docker
(leveraging the Docker API)
– To install Docker, build container, create and ship an image, run container
• What applies to Puppet by and large applies to similar tools such as Chef, Salt
and Ansible
• Puppet Modules are available for many Oracle Database & Fusion Middleware
configuration management tasks
– Oracle Database (EE, SE, XE)
– WebLogic, SOA Suite, OSB, BPM Suite, WLST
– JDK, Opatch, VirtualBox, GlassFish, Hudson, Maven
55
Continuous Delivery in the
Container Era
• What if development team delivers the complete, runnable environment –
instead of fine grained artifacts that need to be deployed to an
environment?
56
The Image is Delivered
• Source code is built into testable and deployable units
• When build and unit test is complete, a Docker Image is built
• This image is the unit of delivery
– It is independent of / unimpeeded by the run time platform
57
Automated Workflow
• Source code commit triggers build, test, ship and deploy of Docker
Container
– For example: Docker Hub can be hooked into GitHub with build trigger
58
Docker –
Concepts in Perspective
Dockerfile Image Docker Hub
Registry
Internet
Container
build
push
pull
run commit
Docker
Private
Registry
push
Text file
Size = ~ KB
Installation &
config instructions
Composed of many read-only layers
Typical size = ~ hundred(s) MB
Can have multiple versions (akin Git tags)
Shares the image’s read-only layers
1 private writeable layer (copy-on-write)
Initial size = 0 bytes
Can be stopped, started, paused, etc.
Free public hosting
Source: Sébastien Bonami, IT Engineering Student and David Lauzon, Researcher (DevOps 2015)
59
Docker –
internal structure
Source: Sébastien Bonami, IT Engineering Student and David Lauzon, Researcher (DevOps 2015)
Docker
Daemon Container 1
Host OS Kernel
Docker
Storage
Backend Container 2 ...
Hardware
Setups & manage the Linux
containers.
Stores the image and container’s
data layers locally.
60
Quick Docker Recap
61
Image and Container Specifics
Container
Base Image
Ubuntu 14.04
COPY
RUN
RUN
Writable Layer
run
Container “state”
tag
remove
inspect
save
tar load …
pullregistry
62
Image and Container Specifics
Container
Base Image
Ubuntu 14.04
COPY
RUN
RUN
Writable Layer
run
start
attach
(un)pause
kill
stop
restart
remove
inspect
logs
Container “state”
export
tar
…
Flattened, no
image details
63
Container Details & Operations
Container
web
Container
db
link
docker run –d –it
<image-id> /bin/bash
Container
xxx
link
link
808080
/tmp/files
Shared Files
/data
/host_files
Docker
storage
/software
Shared Files
/repos/repos
1
2
3
4
1
2
3
4
2
4
–p 8080:80
-v /data -v /tmp/files:/host_files
-volumes-from xxx
--name web --link db:db1 –link xxx:web_xxx
64
Run GUI applications
in Docker Container
Container
docker run –d –it
-v /tmp/.X11-unix:/tmp/.X11-unix
-e DISPLAY=$DISPLAY
<image-id> /bin/bash
/tmp/.X11-unix
/tmp/.X11-unix
dockerhost
GUI applications
65
Docker and Windows
• Docker sits on Linux Containers
– Windows Server 2016 will have containers too – and Docker will sit on those as well
– However, today, Docker does not run on Windows
66
Docker cannot run on Windows
- directly, without Linux VM
dockerhost
Container
Container
Container
67
Vagrant to the rescue
dockerhost
Container
Container
Container
68
Vagrant to the rescue
• Based on simple declarative definitions…
• Vagrant provisions environments through various providers
– VirtualBox, VMware, AWS
• Subsequently, provisioning (‘configuration management’) using shell
scripts, Chef, Anisble, Salt or Puppet
• Vagrant supports Docker
– Create Docker Host VM, Build | Run | Manage Container
• Vagrant makes host-container folder mapping and networking quite easy
dockerhost
Container
69
Vagrant Docker Provisioning
• Vagrantfile defines the Container to run – including name and initial
command and also synched folders (i.e. host <=> container mapping)
• Dockerfile contains build recipe for the Container we want to build
• DockerHostVagrantfile describes the VM to be used as Docker Host
Vagrantfile
DockerHostVagrantfile
Dockerfile
70
Vagrant Docker Provisioning
dockerhostvm
Vagrantfile
DockerHostVagrantfile
Dockerfile
my-little-container
build process
Docker Hub
ubuntu:14.04
/u01/readme.txt
Vagrant Boxes
ubuntu/trusty64
71
Vagrant with Docker
Folder Mapping
dockerhostvm
Vagrantfile
DockerHostVagrantfile
my-little-container
/vagrant
/vagrant
/host_temp
/host_data
/var/lib
/docker
/docker_
generatedId
72
Vagrant on Windows
– other options
• Boot2Docker
– a lightweight Linux distribution based on Tiny Core Linux made
specifically to run Docker containers.
It runs completely from RAM, weighs ~27MB and boots in ~5s
Windows or Mac host
73
Vagrant on Windows
– other options
• Docker Toolbox (since August 2015) replaces Boot2Docker
– Contains Docker Client for Windows, Kitematic (Docker GUI, alpha release), Docker
Machine, Docker Engine and leverages Oracle VirtualBox
– Still uses Boot2Docker Linux Distribution to run containers
– Currently no support for Windows host-container folder mapping
– No support for GUI in containers
74
Oracle and Docker
• Oracle Linux 6 and 7 Images
• WebLogic certified on Docker
– Official “Docker Build-scripts in GitHub to create images”
• Solaris Zones as Docker backend
• Participate in OCI
• Docker on Oracle Cloud??
75
Open Container Initiative
76
Summary
• Build
• Ship
• Run
• Docker – started in 2013
• Open Container Initiative
77
Hands On
• Copy workshop resources from USB stick to c:docker_sig
• Install VirtualBox 5.0 and Vagrant 1.7.4
• Use vagrant up to build and run a simple Docker Container
– This will make Vagrant create the Linux Docker Host VM
• Use vagrant ssh to open a terminal in the Docker Host and start your
Docker adventures
– Manage containers and images
– Use link, port forwarding and volume configurations
• Use vagrant up to build a Docker Container with Puppet support; then
start the container and use Puppet to perform advanced configuration
• Run a container with an Oracle Database inside
• Run a container with a WebLogic Domain inside
• Bonus:
– Create Linux Desktop Docker Host VM (to run GUI applications in Docker Container)
Introduction to automated environment management with Docker Containers - for platform specialists and developers

More Related Content

What's hot

Docker introduction for the beginners
Docker introduction for the beginnersDocker introduction for the beginners
Docker introduction for the beginnersJuneyoung Oh
 
Containerization and Docker
Containerization and DockerContainerization and Docker
Containerization and DockerMegha Bansal
 
Shipping Applications to Production in Containers with Docker
Shipping Applications to Production in Containers with DockerShipping Applications to Production in Containers with Docker
Shipping Applications to Production in Containers with DockerJérôme Petazzoni
 
Introduction to Docker
Introduction  to DockerIntroduction  to Docker
Introduction to DockerJian Wu
 
Introduction to Docker and deployment and Azure
Introduction to Docker and deployment and AzureIntroduction to Docker and deployment and Azure
Introduction to Docker and deployment and AzureJérôme Petazzoni
 
A new model for Docker image distribution
A new model for Docker image distributionA new model for Docker image distribution
A new model for Docker image distributionDocker, Inc.
 
Docker Introductory workshop
Docker Introductory workshopDocker Introductory workshop
Docker Introductory workshopRuncy Oommen
 
Devoxx France 2015 - The Docker Orchestration Ecosystem on Azure
Devoxx France 2015 - The Docker Orchestration Ecosystem on AzureDevoxx France 2015 - The Docker Orchestration Ecosystem on Azure
Devoxx France 2015 - The Docker Orchestration Ecosystem on AzurePatrick Chanezon
 
Docker from A to Z, including Swarm and OCCS
Docker from A to Z, including Swarm and OCCSDocker from A to Z, including Swarm and OCCS
Docker from A to Z, including Swarm and OCCSFrank Munz
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to DockerAlan Forbes
 
Introduction to Docker and all things containers, Docker Meetup at RelateIQ
Introduction to Docker and all things containers, Docker Meetup at RelateIQIntroduction to Docker and all things containers, Docker Meetup at RelateIQ
Introduction to Docker and all things containers, Docker Meetup at RelateIQdotCloud
 
Start your adventure with docker
Start your adventure with dockerStart your adventure with docker
Start your adventure with dockerSagar Dash
 
Introduction to docker
Introduction to dockerIntroduction to docker
Introduction to dockerInstruqt
 

What's hot (20)

Docker introduction for the beginners
Docker introduction for the beginnersDocker introduction for the beginners
Docker introduction for the beginners
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
 
Containerization and Docker
Containerization and DockerContainerization and Docker
Containerization and Docker
 
Shipping Applications to Production in Containers with Docker
Shipping Applications to Production in Containers with DockerShipping Applications to Production in Containers with Docker
Shipping Applications to Production in Containers with Docker
 
Docker
DockerDocker
Docker
 
Introduction to Docker
Introduction  to DockerIntroduction  to Docker
Introduction to Docker
 
Docker Basics
Docker BasicsDocker Basics
Docker Basics
 
Introduction to Docker and deployment and Azure
Introduction to Docker and deployment and AzureIntroduction to Docker and deployment and Azure
Introduction to Docker and deployment and Azure
 
A new model for Docker image distribution
A new model for Docker image distributionA new model for Docker image distribution
A new model for Docker image distribution
 
Docker Introductory workshop
Docker Introductory workshopDocker Introductory workshop
Docker Introductory workshop
 
Devoxx France 2015 - The Docker Orchestration Ecosystem on Azure
Devoxx France 2015 - The Docker Orchestration Ecosystem on AzureDevoxx France 2015 - The Docker Orchestration Ecosystem on Azure
Devoxx France 2015 - The Docker Orchestration Ecosystem on Azure
 
Introduction to container based virtualization with docker
Introduction to container based virtualization with dockerIntroduction to container based virtualization with docker
Introduction to container based virtualization with docker
 
Docker from A to Z, including Swarm and OCCS
Docker from A to Z, including Swarm and OCCSDocker from A to Z, including Swarm and OCCS
Docker from A to Z, including Swarm and OCCS
 
Docker in real life
Docker in real lifeDocker in real life
Docker in real life
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
JOSA TechTalk: Introduction to docker
JOSA TechTalk: Introduction to dockerJOSA TechTalk: Introduction to docker
JOSA TechTalk: Introduction to docker
 
Introduction to Docker and all things containers, Docker Meetup at RelateIQ
Introduction to Docker and all things containers, Docker Meetup at RelateIQIntroduction to Docker and all things containers, Docker Meetup at RelateIQ
Introduction to Docker and all things containers, Docker Meetup at RelateIQ
 
Start your adventure with docker
Start your adventure with dockerStart your adventure with docker
Start your adventure with docker
 
Introduction to docker
Introduction to dockerIntroduction to docker
Introduction to docker
 
Introduction to docker
Introduction to dockerIntroduction to docker
Introduction to docker
 

Similar to Introduction to automated environment management with Docker Containers - for platform specialists and developers

Getting started with Docker
Getting started with DockerGetting started with Docker
Getting started with DockerRavindu Fernando
 
ExpoQA 2017 Using docker to build and test in your laptop and Jenkins
ExpoQA 2017 Using docker to build and test in your laptop and JenkinsExpoQA 2017 Using docker to build and test in your laptop and Jenkins
ExpoQA 2017 Using docker to build and test in your laptop and JenkinsElasTest Project
 
Using Docker with OpenStack - Hands On!
 Using Docker with OpenStack - Hands On! Using Docker with OpenStack - Hands On!
Using Docker with OpenStack - Hands On!Adrian Otto
 
aws 2023 nov docker.pptx
aws 2023 nov docker.pptxaws 2023 nov docker.pptx
aws 2023 nov docker.pptxmalikawannasi
 
Getting Started with Docker
Getting Started with DockerGetting Started with Docker
Getting Started with DockerGeeta Vinnakota
 
Introduction to Docker Containers - Docker Captain
Introduction to Docker Containers - Docker CaptainIntroduction to Docker Containers - Docker Captain
Introduction to Docker Containers - Docker CaptainAjeet Singh Raina
 
Introduction to Docker - IndiaOpsUG
Introduction to Docker - IndiaOpsUGIntroduction to Docker - IndiaOpsUG
Introduction to Docker - IndiaOpsUGAjeet Singh Raina
 
Docker Container Security
Docker Container SecurityDocker Container Security
Docker Container SecuritySuraj Khetani
 
Continuous Integration with Docker on AWS
Continuous Integration with Docker on AWSContinuous Integration with Docker on AWS
Continuous Integration with Docker on AWSAndrew Heifetz
 
Containers: from development to production at DevNation 2015
Containers: from development to production at DevNation 2015Containers: from development to production at DevNation 2015
Containers: from development to production at DevNation 2015Jérôme Petazzoni
 

Similar to Introduction to automated environment management with Docker Containers - for platform specialists and developers (20)

Getting started with Docker
Getting started with DockerGetting started with Docker
Getting started with Docker
 
Docker Dojo
Docker DojoDocker Dojo
Docker Dojo
 
ExpoQA 2017 Using docker to build and test in your laptop and Jenkins
ExpoQA 2017 Using docker to build and test in your laptop and JenkinsExpoQA 2017 Using docker to build and test in your laptop and Jenkins
ExpoQA 2017 Using docker to build and test in your laptop and Jenkins
 
Docker.ppt
Docker.pptDocker.ppt
Docker.ppt
 
Containerization using docker and its applications
Containerization using docker and its applicationsContainerization using docker and its applications
Containerization using docker and its applications
 
Containerization using docker and its applications
Containerization using docker and its applicationsContainerization using docker and its applications
Containerization using docker and its applications
 
Using Docker with OpenStack - Hands On!
 Using Docker with OpenStack - Hands On! Using Docker with OpenStack - Hands On!
Using Docker with OpenStack - Hands On!
 
aws 2023 nov docker.pptx
aws 2023 nov docker.pptxaws 2023 nov docker.pptx
aws 2023 nov docker.pptx
 
Developer workflow with docker
Developer workflow with dockerDeveloper workflow with docker
Developer workflow with docker
 
Docker.pptx
Docker.pptxDocker.pptx
Docker.pptx
 
presentation on Docker
presentation on Dockerpresentation on Docker
presentation on Docker
 
Getting Started with Docker
Getting Started with DockerGetting Started with Docker
Getting Started with Docker
 
Introduction to Docker Containers - Docker Captain
Introduction to Docker Containers - Docker CaptainIntroduction to Docker Containers - Docker Captain
Introduction to Docker Containers - Docker Captain
 
Docker 2014
Docker 2014Docker 2014
Docker 2014
 
Docker
Docker Docker
Docker
 
Docker
DockerDocker
Docker
 
Introduction to Docker - IndiaOpsUG
Introduction to Docker - IndiaOpsUGIntroduction to Docker - IndiaOpsUG
Introduction to Docker - IndiaOpsUG
 
Docker Container Security
Docker Container SecurityDocker Container Security
Docker Container Security
 
Continuous Integration with Docker on AWS
Continuous Integration with Docker on AWSContinuous Integration with Docker on AWS
Continuous Integration with Docker on AWS
 
Containers: from development to production at DevNation 2015
Containers: from development to production at DevNation 2015Containers: from development to production at DevNation 2015
Containers: from development to production at DevNation 2015
 

More from Lucas Jellema

Introduction to web application development with Vue (for absolute beginners)...
Introduction to web application development with Vue (for absolute beginners)...Introduction to web application development with Vue (for absolute beginners)...
Introduction to web application development with Vue (for absolute beginners)...Lucas Jellema
 
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...Making the Shift Left - Bringing Ops to Dev before bringing applications to p...
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...Lucas Jellema
 
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...Lightweight coding in powerful Cloud Development Environments (DigitalXchange...
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...Lucas Jellema
 
Apache Superset - open source data exploration and visualization (Conclusion ...
Apache Superset - open source data exploration and visualization (Conclusion ...Apache Superset - open source data exploration and visualization (Conclusion ...
Apache Superset - open source data exploration and visualization (Conclusion ...Lucas Jellema
 
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...Lucas Jellema
 
Help me move away from Oracle - or not?! (Oracle Community Tour EMEA - LVOUG...
Help me move away from Oracle - or not?!  (Oracle Community Tour EMEA - LVOUG...Help me move away from Oracle - or not?!  (Oracle Community Tour EMEA - LVOUG...
Help me move away from Oracle - or not?! (Oracle Community Tour EMEA - LVOUG...Lucas Jellema
 
Op je vingers tellen... tot 1000!
Op je vingers tellen... tot 1000!Op je vingers tellen... tot 1000!
Op je vingers tellen... tot 1000!Lucas Jellema
 
IoT - from prototype to enterprise platform (DigitalXchange 2022)
IoT - from prototype to enterprise platform (DigitalXchange 2022)IoT - from prototype to enterprise platform (DigitalXchange 2022)
IoT - from prototype to enterprise platform (DigitalXchange 2022)Lucas Jellema
 
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...Lucas Jellema
 
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...Lucas Jellema
 
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...Lucas Jellema
 
Introducing Dapr.io - the open source personal assistant to microservices and...
Introducing Dapr.io - the open source personal assistant to microservices and...Introducing Dapr.io - the open source personal assistant to microservices and...
Introducing Dapr.io - the open source personal assistant to microservices and...Lucas Jellema
 
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...Lucas Jellema
 
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...Lucas Jellema
 
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)Lucas Jellema
 
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...Lucas Jellema
 
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)Lucas Jellema
 
Tech Talks 101 - DevOps (jan 2022)
Tech Talks 101 - DevOps (jan 2022)Tech Talks 101 - DevOps (jan 2022)
Tech Talks 101 - DevOps (jan 2022)Lucas Jellema
 
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...Lucas Jellema
 
Cloud Native Application Development - build fast, low TCO, scalable & agile ...
Cloud Native Application Development - build fast, low TCO, scalable & agile ...Cloud Native Application Development - build fast, low TCO, scalable & agile ...
Cloud Native Application Development - build fast, low TCO, scalable & agile ...Lucas Jellema
 

More from Lucas Jellema (20)

Introduction to web application development with Vue (for absolute beginners)...
Introduction to web application development with Vue (for absolute beginners)...Introduction to web application development with Vue (for absolute beginners)...
Introduction to web application development with Vue (for absolute beginners)...
 
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...Making the Shift Left - Bringing Ops to Dev before bringing applications to p...
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...
 
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...Lightweight coding in powerful Cloud Development Environments (DigitalXchange...
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...
 
Apache Superset - open source data exploration and visualization (Conclusion ...
Apache Superset - open source data exploration and visualization (Conclusion ...Apache Superset - open source data exploration and visualization (Conclusion ...
Apache Superset - open source data exploration and visualization (Conclusion ...
 
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...
 
Help me move away from Oracle - or not?! (Oracle Community Tour EMEA - LVOUG...
Help me move away from Oracle - or not?!  (Oracle Community Tour EMEA - LVOUG...Help me move away from Oracle - or not?!  (Oracle Community Tour EMEA - LVOUG...
Help me move away from Oracle - or not?! (Oracle Community Tour EMEA - LVOUG...
 
Op je vingers tellen... tot 1000!
Op je vingers tellen... tot 1000!Op je vingers tellen... tot 1000!
Op je vingers tellen... tot 1000!
 
IoT - from prototype to enterprise platform (DigitalXchange 2022)
IoT - from prototype to enterprise platform (DigitalXchange 2022)IoT - from prototype to enterprise platform (DigitalXchange 2022)
IoT - from prototype to enterprise platform (DigitalXchange 2022)
 
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
 
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...
 
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...
 
Introducing Dapr.io - the open source personal assistant to microservices and...
Introducing Dapr.io - the open source personal assistant to microservices and...Introducing Dapr.io - the open source personal assistant to microservices and...
Introducing Dapr.io - the open source personal assistant to microservices and...
 
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
 
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
 
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
 
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...
 
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)
 
Tech Talks 101 - DevOps (jan 2022)
Tech Talks 101 - DevOps (jan 2022)Tech Talks 101 - DevOps (jan 2022)
Tech Talks 101 - DevOps (jan 2022)
 
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
 
Cloud Native Application Development - build fast, low TCO, scalable & agile ...
Cloud Native Application Development - build fast, low TCO, scalable & agile ...Cloud Native Application Development - build fast, low TCO, scalable & agile ...
Cloud Native Application Development - build fast, low TCO, scalable & agile ...
 

Recently uploaded

Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 

Recently uploaded (20)

Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 

Introduction to automated environment management with Docker Containers - for platform specialists and developers

  • 1. Lucas Jellema AMIS Platform SIG - 1 October 2015 Introduction to automated environment management with Docker Containers - for platform specialists and developers
  • 3. 3 Overview • Docker – what is behind the hype? • A grasp on terminology such as Container, Build, Ship and Run – Images, registry, micro services, • Enough to participate in the discussion • How to get started and going with Docker – On Windows (or Mac OS) • What can Docker mean to me – In my personal R&D environment – In my daily work situation • What’s Oracle’s position regarding Docker? • What is Docker’s current status and near by future • Handson resulting in – A Docker enabled environment – Several containers running (Ubuntu, Wordpress, Oracle 11g XE DB, JDeveloper) – A stepping stone for creating additionals containers and interdependencies
  • 4. 4 What can Docker give us (developers/platform specialists) • An efficient way – in terms of work and physical machine resources – to rapidly create, easily manage isolated environments – That can be created and deleted easily – That start and stop rapidly – That can be exchanged simply – That consume minimal system resources • Use cases: – Quickly try out some software (release) – without upsetting your laptop – Easily create and distribute a complete training environment – Prepare an environment for deployment to a cloud environment – Locally construct and test a potentially complex environment that is then transfered to a shared infrastructure – Implement a micro services infrastructure – Emulate/Test complex clusters on a single host
  • 6. 6 Demo – Run our first container dockerhost port 80 IP 172.17.0.6
  • 7. 7 Demo – Run a second container based on same image
  • 8. 8 Demo – two running NGINX containers; port forwarding for one port 80 port 80 port 90 IP 172.17.0.7 IP 172.17.0.6
  • 9. 9 Demo: run container in interactive mode using shell dockerhost /tmp/mynewfile.txt
  • 10. 10 Demo: restart container and attach to locate my file dockerhost /tmp/mynewfile.txt
  • 11. 11 Final status demo: Running Multiple Containers in a Single Linux Host port 90 port 80 port 80 /tmp/mynewfile.txt /var/lib/docker/aufs/diff/… 6af69dd33af4…/tmp/mynewfile.txt
  • 12. 12 Run • Docker Container runs Linux – as does the host • Container is isolated - feels as stand alone run time environment – Directory structure, IP address, users and groups • Shared resources with underlying host (and therefore other containers) – memory, CPU, host • Light weight: – Quick starting up and stopping – Leverages underlying Linux, only adds what is different/additional • Clusters of containers – Dynamic adding/removing containers from clusters can be done very quickly (Google) – Especially when containers are stateless – (no shared session state in containers; possibly in joint cache, shared file system or NoSQL database) • Management tools – to monitor and manage individual containers and clusters of containers (dynamically scale up/scale down) Docker Host Docker Container Docker Container • ip address • directories & files • users & groups • process table
  • 13. 13 When it walks and talks like a Virtual Machine… • Virtual Machine vs Container
  • 14. 14 Containers vs Virtual Machines • Containers do not run through a hypervisor – They are logically isolated from the host and each other – They run the same kernel as the host (i.e. Linux!) • Containers share resources (the kernel) with host – the rest of the OS can be unique per container (namespaces on host in mounts, process table, network resources) • Containers are based on images defined in a layered file system; all containers based on the same image share the image definition – Adding a copy-on-write file system layer – 50 containers based on the same image require same file system resources as 1 container – until they start changing or creating files • Containers start, stop, restart in seconds • Containers do not have physical resources (memory, CPU) pre-allocated – Resources are allocated at run time
  • 15. 15 Docker is a high level API on core Linux Kernel features • Solaris Zones and Windows Server offer similar isolation capabilities
  • 16. 16 Micro Services • Architect the application into a set of collaborating services. • Each service implements a set of narrowly, related functions. • The services are elastic, resilient, composable, minimal, and complete. • Services communicate using standard protocols such as HTTP/REST • Services are developed and deployed independently of one another. • Each service manages its own state
  • 17. 17 Micro Services • With Docker, each Micro Service is implemented with a single container – The micro service is not just encapsulated functionality that needs to be deployed onto some platform (such as an ESB or BPEL engine) – instead it ships complete with the fully configured engine that runs in the standardized container platform • All you need to run is: – Start container. Period. Linux Host + Docker Engine
  • 18. 18 A more complex network of microservices…
  • 19. 19 Micro Services and containers • Containers can run on the same host – Or on different hosts • Containers can be run as a single node – Or scale up to run as many nodes • Containers can easily be replaced by other containers – That can be connected to in the same way
  • 21. 21 GUIs for monitoring & managing a Docker runtime environment • Dockland - Yet another docker web UI – https://github.com/dynport/dockland • Shipyard – a web UI for Docker – https://github.com/ehazlett/shipyard • DockerUI – Web interface to interact with the Docker Remote API – https://github.com/crosbymichael/dockerui • Simple Docker UI – https://github.com/felixgborrego/docker-ui-chrome-app • Panamax – https://github.com/CenturyLinkLabs/panamax-ui
  • 23. 23 Demo Ship Run MySQL and Wordpress
  • 24. 24 Running Wordpress instance by pulling two public images port 8080 port 80 dockerhostvm IP: 10.10.10.29 Docker Hub
  • 25. 25 Commit container as image and push to registry dockerhostvm Docker Hub /tmp/mynewfile.txt Dockersig-trial:1.0
  • 26. 26 Image published on public Docker Hub registry
  • 27. 27 Run container based on my published image dockerhostvm Docker Hub /tmp/mynewfile.txt Dockersig-trial:1.0 Dockersig- trial:1.0
  • 28. 28 Containers in the world of physical logistics
  • 29. 29 Docker Containers Ship microservice – app, libs, configuration, platform ready to run on any Linux Host+Docker
  • 30. 30 Docker Registry • Images can be published to Public and Private Registries – Docker Hub is the default registry – Docker Hub contains official repositories from many projects and vendors – Private Registries can be created in the cloud and on premises • Containers can be started from such images
  • 33. 33 How to Ship a Stand-Alone product? • Create Installers + Configuration Instructions? • Make your product success dependent on platform configuration and OS settings? • Ship as a container – everything set up and ready to run! • For example: – RubiconRed – Preferred way to deliver their tool MyST: as Docker Container (image)
  • 34. 34 Docker – Build, Ship and Run
  • 36. 36 Demo run container after build
  • 37. 37 Demo Build – slightly more advanced Dockerfile
  • 38. 38 Demo – run image created in build process
  • 39. 39 Building a Docker Container • The Build Steps are prescribed in Dockerfile – Could be called the container recipe • Docker commands specify: – Start from Base Image – Perform commands such as ADD, COPY, RUN that modify the starting situation – The Build Context contains the contents of the folder on the Docker host that contains the Dockerfile (including sub folders) • This can become quite large • During build – files can be downloaded over HTTP using standard wget (but not copied from the host outside the build context) • All files added to the container become part of its history (and increase the size) – Specify the default CMD to run when the container is started – Optionally: tag the container as image, push it to registry and start one or more containers from the new image
  • 40. 40 Building a Docker Container • Docker files specifies all build steps – With fairly low level commands • Start from base image - each step in the Docker Script adds a layer • A layer is – A logical ‘savepoint’ in the container history • That marks an intermediate ‘image’ – A physical directory somewhere on the Docker Host Base Image Ubuntu 14.04 FROM Ubuntu:14.04 COPY RUN WORKDIR RUN EXPOSE CMD COPY RUN RUN Final Image
  • 41. 41 Run a Docker Container • When a Docker Container is run based on an image then all these “physical” layers are combined into a “logical” read-only file system – Union file system – Copy-on-write – Like a stack: higher layers may override lower layers • A writable layer is added for the running container Base Image Ubuntu 14.04 COPY RUN RUN Base Image Ubuntu 14.04 COPY RUN RUN Writable Layer run Base Image Ubuntu 14.04 COPY RUN RUN Writable Layer run
  • 42. Standard Image, locally built 42 Build • In addition to 10Ks of reusable images to start containers from • There are a zilion Dockerfiles to leverage for building images – Download script – Add software packages and installers (because of license reasons) – Tweak the script to fit your own needs OR (preferably) – Run the script, create a local image and then create your own Docker File that takes this image as its starting point Your Own Dockerfile Your Tweaked Image
  • 44. 44 For example: build container for Oracle WebLogic • Clone from GitHub to Docker host – Dockerfile – Shell scripts – Supporting files • Download RPMs for – JDK 8 – WebLogic 12.1.3 • Docker Build • Optionally use second Docker file on top of WebLogic image to create a WLS Domain Standard Oracle WebLogic Image, locally built
  • 45. 45 Build File for WebLogic Base Image Oraclelinux:7 RUN COPY RUN COPY COPY COPY
  • 46. 46 Build File for WebLogic (2) Base Image Oraclelinux:7 RUN COPY RUN COPY COPY COPY RUN RUN RUN RUN RUN
  • 47. Base Image Oraclelinux:7 RUN COPY RUN COPY COPY COPY RUN RUN RUN RUN RUN 47 Turn container into image Base Image Oraclelinux:7 RUN COPY RUN COPY COPY COPY RUN RUN RUN RUN RUN docker commit <container-id> weblogic:12.1.3-dev
  • 48. 48 Build File for WebLogic Domain weblogic:12.1.3-dev Base Image Oraclelinux: 7 RUN COPY RUN COPY COPY COPY RUN RUN RUN RUN RUN Base Image Weblogic:12.1.3- dev COPY RUN Base Image Oraclelinux:7 RUN COPY RUN COPY COPY COPY RUN RUN RUN RUN RUN
  • 49. 49 Build File for WebLogic Domain (2) Base Image Weblogic:12.1.3- dev COPY RUN RUN RUN Base Image Oraclelinux:7 RUN COPY RUN COPY COPY COPY RUN RUN RUN RUN RUN
  • 50. 50 Tag container as reusable image Base Image Weblogic:12.1.3- dev COPY RUN RUN RUN Base Image Oraclelinux:7 RUN COPY RUN COPY COPY COPY RUN RUN RUN RUN RUN docker commit <container-id> weblogic-basedomain:12.1.3 oraclelinux:7 weblogic: 12.1.3-dev weblogic- basedomain:12.1.3
  • 51. 51 Build Microservice based on WebLogic plus Custom App Microservice: custom app oraclelinux:7 weblogic: 12.1.3-dev weblogic- basedomain:12.1.3 WLST deploy EAR WLST config JMS WLST config data sources Microservice: database
  • 52. 52 Automated Configuration Management • Use of Shell Scripting to create | compose | configure environments is not exactly the latest fashion • Declarative, automated configuration management tools have us specify what we need and then make that happen – No scripting – Cross platform – Parametrized – Leveraging public catalogs of environment definitions
  • 53. Container Build process • Regular Docker Build – From base image – Add Puppet support – Add Puppet Manifests & Modules • Start Container – Optional: Map Volume from host with large files – Run Puppet to apply Manifests – Stop Container, Tag as Image dockerhostvm Dockerfile my-base-container /files /puppet /files volume 1 Very big files Advanced Docker Container Build using Puppet 2 3 4 5 4 21 3 /puppet Manifests/Modules 5
  • 54. 54 Notes on Using Puppet with Docker • After applying Puppet – the container can be stopped, tagged and used as base image for next Docker Build – That could EXPOSE, ENV, CMD or ENTRYPOINT • With some workarounds, Puppet apply can be made to run during Docker Build (with RUN in Dockerfile) – Less control over build context – No Volume mapping from host • There are Puppet Modules to use for automating the build pipeline of Docker (leveraging the Docker API) – To install Docker, build container, create and ship an image, run container • What applies to Puppet by and large applies to similar tools such as Chef, Salt and Ansible • Puppet Modules are available for many Oracle Database & Fusion Middleware configuration management tasks – Oracle Database (EE, SE, XE) – WebLogic, SOA Suite, OSB, BPM Suite, WLST – JDK, Opatch, VirtualBox, GlassFish, Hudson, Maven
  • 55. 55 Continuous Delivery in the Container Era • What if development team delivers the complete, runnable environment – instead of fine grained artifacts that need to be deployed to an environment?
  • 56. 56 The Image is Delivered • Source code is built into testable and deployable units • When build and unit test is complete, a Docker Image is built • This image is the unit of delivery – It is independent of / unimpeeded by the run time platform
  • 57. 57 Automated Workflow • Source code commit triggers build, test, ship and deploy of Docker Container – For example: Docker Hub can be hooked into GitHub with build trigger
  • 58. 58 Docker – Concepts in Perspective Dockerfile Image Docker Hub Registry Internet Container build push pull run commit Docker Private Registry push Text file Size = ~ KB Installation & config instructions Composed of many read-only layers Typical size = ~ hundred(s) MB Can have multiple versions (akin Git tags) Shares the image’s read-only layers 1 private writeable layer (copy-on-write) Initial size = 0 bytes Can be stopped, started, paused, etc. Free public hosting Source: Sébastien Bonami, IT Engineering Student and David Lauzon, Researcher (DevOps 2015)
  • 59. 59 Docker – internal structure Source: Sébastien Bonami, IT Engineering Student and David Lauzon, Researcher (DevOps 2015) Docker Daemon Container 1 Host OS Kernel Docker Storage Backend Container 2 ... Hardware Setups & manage the Linux containers. Stores the image and container’s data layers locally.
  • 61. 61 Image and Container Specifics Container Base Image Ubuntu 14.04 COPY RUN RUN Writable Layer run Container “state” tag remove inspect save tar load … pullregistry
  • 62. 62 Image and Container Specifics Container Base Image Ubuntu 14.04 COPY RUN RUN Writable Layer run start attach (un)pause kill stop restart remove inspect logs Container “state” export tar … Flattened, no image details
  • 63. 63 Container Details & Operations Container web Container db link docker run –d –it <image-id> /bin/bash Container xxx link link 808080 /tmp/files Shared Files /data /host_files Docker storage /software Shared Files /repos/repos 1 2 3 4 1 2 3 4 2 4 –p 8080:80 -v /data -v /tmp/files:/host_files -volumes-from xxx --name web --link db:db1 –link xxx:web_xxx
  • 64. 64 Run GUI applications in Docker Container Container docker run –d –it -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=$DISPLAY <image-id> /bin/bash /tmp/.X11-unix /tmp/.X11-unix dockerhost GUI applications
  • 65. 65 Docker and Windows • Docker sits on Linux Containers – Windows Server 2016 will have containers too – and Docker will sit on those as well – However, today, Docker does not run on Windows
  • 66. 66 Docker cannot run on Windows - directly, without Linux VM dockerhost Container Container Container
  • 67. 67 Vagrant to the rescue dockerhost Container Container Container
  • 68. 68 Vagrant to the rescue • Based on simple declarative definitions… • Vagrant provisions environments through various providers – VirtualBox, VMware, AWS • Subsequently, provisioning (‘configuration management’) using shell scripts, Chef, Anisble, Salt or Puppet • Vagrant supports Docker – Create Docker Host VM, Build | Run | Manage Container • Vagrant makes host-container folder mapping and networking quite easy dockerhost Container
  • 69. 69 Vagrant Docker Provisioning • Vagrantfile defines the Container to run – including name and initial command and also synched folders (i.e. host <=> container mapping) • Dockerfile contains build recipe for the Container we want to build • DockerHostVagrantfile describes the VM to be used as Docker Host Vagrantfile DockerHostVagrantfile Dockerfile
  • 70. 70 Vagrant Docker Provisioning dockerhostvm Vagrantfile DockerHostVagrantfile Dockerfile my-little-container build process Docker Hub ubuntu:14.04 /u01/readme.txt Vagrant Boxes ubuntu/trusty64
  • 71. 71 Vagrant with Docker Folder Mapping dockerhostvm Vagrantfile DockerHostVagrantfile my-little-container /vagrant /vagrant /host_temp /host_data /var/lib /docker /docker_ generatedId
  • 72. 72 Vagrant on Windows – other options • Boot2Docker – a lightweight Linux distribution based on Tiny Core Linux made specifically to run Docker containers. It runs completely from RAM, weighs ~27MB and boots in ~5s Windows or Mac host
  • 73. 73 Vagrant on Windows – other options • Docker Toolbox (since August 2015) replaces Boot2Docker – Contains Docker Client for Windows, Kitematic (Docker GUI, alpha release), Docker Machine, Docker Engine and leverages Oracle VirtualBox – Still uses Boot2Docker Linux Distribution to run containers – Currently no support for Windows host-container folder mapping – No support for GUI in containers
  • 74. 74 Oracle and Docker • Oracle Linux 6 and 7 Images • WebLogic certified on Docker – Official “Docker Build-scripts in GitHub to create images” • Solaris Zones as Docker backend • Participate in OCI • Docker on Oracle Cloud??
  • 76. 76 Summary • Build • Ship • Run • Docker – started in 2013 • Open Container Initiative
  • 77. 77 Hands On • Copy workshop resources from USB stick to c:docker_sig • Install VirtualBox 5.0 and Vagrant 1.7.4 • Use vagrant up to build and run a simple Docker Container – This will make Vagrant create the Linux Docker Host VM • Use vagrant ssh to open a terminal in the Docker Host and start your Docker adventures – Manage containers and images – Use link, port forwarding and volume configurations • Use vagrant up to build a Docker Container with Puppet support; then start the container and use Puppet to perform advanced configuration • Run a container with an Oracle Database inside • Run a container with a WebLogic Domain inside • Bonus: – Create Linux Desktop Docker Host VM (to run GUI applications in Docker Container)

Editor's Notes

  1. CON2394 The functionality available to Oracle Database developers has evolved over all releases of Oracle Database. The improvements have allowed for faster development, richer functionality, and better-performing code as well as clearly establishing the role of the database in multitier applications and SOA architectures. Areas of recent improvement include core SQL (with inline PL/SQL), flashback, data pattern processing, zero-downtime application upgrades, XML manipulation, JSON support, inbound and outbound HTTP processing, data redaction, fine-grained auditing and authorization, and PL/SQL language extensions. This session demonstrates the most-useful 12c database features for application developers. 12.1.0.2 In Memory, JSON, Approximate Count Distinct, PDB CONTAINERS Clause Flashback Database Archive Support for Multitenant Container Database JSON in Oracle http://t.co/f2bEKQSpwz
  2. https://technology.amis.nl/2015/08/29/vagrant-docker-virtualbox-and-the-graphical-desktop-for-gui-applications-in-docker-containers/