This document discusses Oracle WebLogic Server 12c running with Docker containers. It begins with introductions of Bruno Borges from Oracle and Dr. Frank Munz. It then provides an overview of Docker and how it differs from virtualization. Docker images and containers are explained. Using Docker with clouds is discussed. Finally, running WebLogic Server within a Docker container is covered, including what is supported and example Dockerfiles and scripts.
3. 3
• Dr. Frank Munz
• Founded munz & more in 2007
• 15 years Oracle WebLogic
and Middleware
• Consulting and
High-End Training
• Three Oracle / Cloud
books
• twitter: @frankmunz
10. Docker
• Open Source (evolving), written in Go
• Container technology supported by Oracle
• Portable Standard
• Runs on Linux (and Microsoft, Solaris)
Google starts
2.000.000.000
containers
per week!
11. Virtualization vs. Container
munz & more #11
Linux
+
Docker
Hardware
a.war
Docker
container
in
Linux
with
own
FS,
network
stack
/
IP
address,
process
space
and
resource
limits
Hardware
OVM
/
VmWare
ESX
/
Xen
Appl
1
Solaris
Appl
1
Linux
Appl
1
Win
Server
VirtualizaVon
type
1
hypervisor
=
on
bare
metal
Hardware
VirtualBox
Mac
OS
/
Win
App
Linux
Desktop
VirtualizaVon:
type
2
hypervisor
=
with
host
OS
App
Win
App
Win
ejb.jar
y.jar
x.py
JDK
WebLogic
tools
Jython
12. Docker
munz & more #12
Linux
+
Docker
Hardware
a.war
ejb.jar
y.jar
x.py
JDK
WebLogic
tools
Jython
Docker is not a
lightweight VirtualBox
Containers run on
Linux kernel of host
-> Containers are
visible on host
13. Docker Images
• Package format
• Layered incremental file system
• “Application with all dependencies”
• Create it yourself
or get it from Docker Hub
$
docker
images
munz & more #13
Example Layers:
- WLS Domain
- WebLogic
- Java
- Base Image
14. Docker Container
• Isolated runtime of image
• Start up in milliseconds
• Sandboxing uses Linux namespaces and cgroups
-> isolated part of your Linux
• Open Container Standard / Linux Foundation
$docker
run
-‐d
–p
8080:9999
fmunz/micro
munz & more #14
a.war
ejb.jar
y.jar
x.py
JDK
WebLogic
tools
Jython
15. solves the “Worked For Me!” issue
munz & more #15
OS
tools,
JDK,
patches,
database
driver,
libs,
appserver,
domain,
deployment,
tools,
scripts
Docker
OS
uVls,
JDK,
patches,
database
driver,
libs,
appserver,
domain,
deployment,
tools,
scripts
IntegraVon,
Performance,
Acceptance
TesVng
ProducVon
dockerize it!
You can pass environment
variables for specific
settings e.g. in prod
17. Registry
• Hosted, code open sourced
• Docker image is not found? pulled from registry
• Push your image to registry
$docker
push
yourname/newimage
• Free account includes 1 private registry
• Also private, containerized registry for download
with fs and optional in-memory S3, or Azure data
store
munz & more #17
18. what should be your
biggest nightmare:
unknown and
unofficial images
(>14000)
Docker
Registry
19. Automated Builds
• Automatically build your images:
GitHub account with Dockerfile
• Registry uses GitHub directory structure
as build context
• Image is uploaded automatically
to Docker hub
-> Trust, up to date, and transparent
21. Docker in the Cloud?
Supported by every major cloud provider:
munz & more #21
On premise -> all clouds
Docker
Registry
22. The new PaaS?
”PaaS: some hosted platform* that runs
my Java, Java EE, node.js, or Ruby code.”
Now you build your all-incl. container yourself...
->PaaS: platform that runs containers?
*real cloud: API, elasticity, and pay per use
munz & more #22
23. The new PaaS?
PaaS is more than just code-push...
-> Don’t forget DB as a Service, Integration Service
(Oracle ICS) etc.
munz & more #23
29. What is supported?
munz & more #29
Check the ff.
Oracle docs:
- CertMatrix
- WLS &
Docker
Whitepaper
30. What Do You Get?
• NOT WebLogic from Docker registry
• NO automatic build via github
• Github repo with scripts
to set up WebLogic on
Oracle Linux in Docker
• Dev or generic distribution
• Docker is a supported
environment for
WebLogic 12.1.3
munz & more #30
32. Extend the WLS-only image
Sample script provided:
• Dockerfile to extend WLS image. Starts with
FROM
oracle/weblogic:12.1.3-‐dev
• Run WLST script to create domain
• Create boot.properties
• Expose NM, Server ports
• Default command: startWebLogic.sh
munz & more #32
33. Docker Style
• Independent WLS in container
• Microservices style architecture
• Just add your favorite Docker
cluster
manager
munz & more #33
OS
tools,
JDK,
database
driver,
libs,
appserver,
single
domain
(admin
server
only),
deployment,
tools,
scripts
34. The WebLogic Way
munz & more #34
$docker
run
-‐d
-‐-‐link
wlsadmin:wlsadmin
fmdom1
createServer.sh
$docker
run
-‐d
-‐p
8001:8001
-‐-‐name=wlsadmin
fmdom1
startWebLogic.sh
JDK,
WLS,
Domain
startWebLogic.sh
starts
AdminServer
wlsadmin
JDK,
WLS,
Domain
createServer.sh:
creates
machine/NM,
starts
NM,
creates
manServ,
starts
manServ
connect to admin
due to --link:
/etc/hosts
172.17.1.99
wlsadmin
31a1baaf
or
createMachine.sh
or
startNodeManager.sh
port
8001
IP:port
7001
Managed
Servers
35. The WebLogic Way Config
munz & more #35
Managed
Server
Node
Manager
Managed
Server
starVng
up
automaVcally
36. Facts to Know
• Oracle supports WebLogic on Docker
• Docker networking is still experimental
-> limitations for cross-machine deployments
• Docker cluster managers are still evolving
(Kubernetes, Apache Mesos with Marathon, AWS ECS,
CloudFoundry, etc.)
munz & more #36
37. munz & more #37
Good
Docker
book
by
J.
Turnbull
(Docker
1.8)
Oracle
Whitepaper
WebLogic
on
Docker
Containers