SlideShare a Scribd company logo
OPENNTF WEBINARS
January OpenNTF Webinar: 4D - Domino Docker Deep Dive
AGENDA
• Welcome – Howard Greenberg and Graham Acres
• Thomas Hampel, Director, HCL Product Management
• Daniel Nashed, HCL Lifetime Ambassador
• Q and A - All
ASKING QUESTIONS
• First Question – Will this be recorded?
• Yes, view on YouTube!!!
• https://www.youtube.com/user/OpenNTF
• Use the Questions Pane in GoToWebinar
• We will get to your questions at the end of
the webinar
• The speakers will respond to your questions
verbally
• (not in the Questions pane)
• Please keep all questions related to the
topics that our speakers are discussing!!!
• Unrelated Question => post at:
• http://openntf.slack.com/
THANKS TO THE OPENNTF SPONSORS
• HCL made a significant contribution to help our
organization
• Funds these webinars!
• Contests like Hackathons
• Running the organization
• Prominic donates all IT related services
• Cloud Hosting for OpenNTF
• Infrastructure management for HCL Domino and Atlassian
Servers
• System Administration for day-to-day operation
THIS IS OUR COMMUNITY
• Join us and get involved!
• We are all volunteers
• No effort is too small
• If your idea is bigger than you can do on your own, we
can connect you to a team to work on it
• Test or help or modify an existing project
• Write guides or documentation
• Add reviews on projects / stars on Snippets
NEXT WEBINAR
• February OpenNTF Webinar: Introduction to
Ansible for Newbies
• For Domino admins and developers who would
like to learn Ansible basics.
• Christoph Stoettener, HCL Ambassador
• Thursday, February 18, 2021 at 11:00 AM (New
York time)
• www.openntf.org/webinars
on Deep Dive
4D
Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com 2
Daniel Nashed
§ Nash!Com, Germany
§ HCL Business Partner / ISV
§ nsh@nashcom.de
§ http://blog.nashcom.de
Thomas Hampel
§ HCL Germany
§ Director @ Product Management
§ thomas.hampel@pnp-hcl.com
§ https://blog.thomashampel.com
Speakers
Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com
Problem Definition
3
Cost reduction
Reusability
Time to deploy
CTRL C
CTRL V
+
+
Consistency
A
u
t
o
m
a
t
i
o
n
R
e
s
o
u
r
c
e
O
p
t
i
m
i
z
a
t
i
o
n
S
t
a
n
d
a
r
d
i
z
a
t
i
o
n
S
t
a
n
d
a
r
d
i
z
a
t
i
o
n
Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com
Containers make a difference…
1. Install Docker (if not already present)
2. Unzip sametime_meetings.zip
3. Modify .env file for local settings
4. Run install.sh
Sametime Installation
è 970 Pages ç
Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com 5
Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com
CNCF Cloud Native Landscape
Source:
https://landscape.cncf.io/
Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com
(Docker) Containers
• Isolating processes from each other
• Share OS (kernel) and binaries/libraries (where appropriate)
• Do not have an entire OS installed within
• Designed to be portable
• Usually single purpose
Physical Hardware
Operating System
Docker
Container
Bins/Libs Bins/Libs
App1 App1’ App 2 App 2’
Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com
Container Concept – Example : Domino
8
Kernel
centos:latest
domino:11.0.1
YourDominoApp
Runtime/Writable
R
e
f
e
r
e
n
c
e
s
p
a
r
e
n
t
Container is
• a layered file system where each layer
references the layer below
• a runtime instance of an image.
• not containing your persistent (Domino) data
Images
• Are used to create containers
• Layers build on top of each other
only the differences are stored in each layer.
Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com
Container Concept – Example : Domino
9
Kernel
centos:latest
domino:11.0.1
Domino Volt
Runtime/Writable
R
e
f
e
r
e
n
c
e
s
p
a
r
e
n
t
Container is
• a layered file system where each layer
references the layer below
• a runtime instance of an image.
• not containing your persistent (Domino) data
Images
• Are used to create containers
• Layers build on top of each other
only the differences are stored in each layer.
Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com
Docker Components
Registry
Docker registry hold images.
These are public or private stores
from which you upload or download
images.
Docker_Host
Docker daemon
Ref.: https://docs.docker.com/engine/understanding-docker/
A Docker image is a read-only template.
e.g. containing Linux operating system
with Apache and your WebApp installed.
Docker images are used to create other
images or Docker containers.
The Docker client, is the primary
user interface to Docker. It accepts
commands from the user and
communicates back and forth with a
Docker daemon.
Client
Docker build
Docker pull
Docker run
Images
A Docker container holds everything that is
needed for an application to run. Each
container is created from a Docker image.
Containers
Docker volumes are shared storage areas
for persistent data. Deleting the container
will not delete the volume
Volumes
Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com
Image Template
Container Application
CLI Domino console
Volume
Domino Data
Directory
Container Terminology for Domino Admins
=
=
=
=
Registry OpenNTF.org
=
Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com
HCL Domino Docker Image
Platforms
• Redhat Universal Base Image
(UBI)
• Build & run-time support on
Docker 18.09+ Linux/MAC
12
Provides Images :
Base image for:
• Domino 11.0.1
https://hclsoftware.flexnetoperations.com/flexnet/operationsportal/startPage.do
• Official HCL Image
• Just download from Flexnet and import to your environment = Ready to run
Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com
Domino Docker on Github
Platforms
• CentOS 7 / 8
• Redhat Universal Base Image (UBI)
• Build & run-time support on
Docker 18.09+ Linux/MAC
• Podman 1.5.0+
• openSUSE Leap
• Run-time support for Kubernetes & Openshift
• Tested with QNAP, Synology
13
Provides Images :
Base image for:
• Domino 9.0.1 (with any FP)
• Domino 10.0.1 (with any FP)
• Domino 11.0.1
Addon image for
• Traveler 9, 10, and 11
• Domino Volt
https://github.com/ibm/domino-docker
• Must built your own image (automated, using a script) from Domino Linux installer
• Includes automated Domino Configuration
Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com
…
Platform9
Rancher
Where to start - Decision Flow for a platform
14
Docker
Server
Kubernetes
OpenShift
$
Entry
Test
Docker
Desktop
Level 1
Test & Development
Level 2
Prod. Hosting
Level 3
Scale
Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com
Level 1 - Docker in MacOSX
15
• Uses Mac integrated virtualization
• Also runs a Linux VM with Container run-time
• Desktop Application
• Kubernetes single node-cluster
• Docker Compose
• Start here: https://docs.docker.com/docker-for-mac/
Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com
Level 1 – Docker on Windows
16
• Leverages Hyper-V
(Linux container with Container run-time)
• Command Line is Windows
(only batch and power-shell scripting)
• Desktop application
• Kubernetes single node-cluster
• Docker compose
• Hyper-V and VMware did not work on the same time
• Fix from VMware and Microsoft
You need VMware 15.5 Workstation/Player
• Start here: https://docs.docker.com/docker-for-windows/
Windows
Hyper-V
Linux
Docker Docker CLI
Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com
Level 1 – Docker on Windows with WSL 2
17
• Uses native WSL2 Linux containers
for Container run-time
• No requirement to run Hyper-V
• Full integration in Ubuntu or Debian
running in separate WSL container each
• Desktop application
• Kubernetes single node-cluster
• Docker Compose
• Start here:
https://docs.docker.com/docker-for-windows/wsl/
• See http://blog.nashcom.de/
Windows
WSL2
Linux
Docker Docker CLI
Ubuntu
Docker CLI
Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com
Level 1 – Docker on Windows with WSL 2
18
• Uses native WSL2 Linux containers
for Container run-time
• No requirement to run Hyper-V
• Full integration in Ubuntu or Debian
running in separate WSL container each
• Desktop application
• Kubernetes single node-cluster
• Docker Compose
• Start here:
https://docs.docker.com/docker-for-windows/wsl/
• See http://blog.nashcom.de/
Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com
Level 1 – Docker on Linux
19
• CentOS/RedHat, Debian, Fedora, Ubuntu
(separate install instructions per platform)
• Docker service controlling + Docker Client
• Runs native on Linux
• Okay for smaller production deployments
• You can optionally install Docker Compose
• No Kubernetes included
• Start here: https://docs.docker.com/engine/install/
Level 1 conclusion : Win? MacOS? Linux? It’s always Linux in one way or the other
Linux
Docker Docker CLI
Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com
Level 2 – Docker Server
20
• System Recommendation
• min. 2 CPU Cores,
• 8 GB RAM,
• 50 GB storage
• Linux Operating System
e.g. CentOS 8 or RedHat 8
• Docker CE 19.03+
• Intended for small deployments
and POC type environments
• Easiest to install and configure
• Limited number of users
• Does not support automatic scaling, limited number
of ‘recorders’
• Fully supported for production
Hypervisor
VM
Linux
Docker Docker CLI
Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com
Level 3 – Kubernetes (k8s)
21
• https://kubernetes.io/
• Aka “vanilla” kubernetes
• Built for enterprise deployments at scale
• Contains management and orchestration
• Open source & free of charge
• Runs on virtualized machine or on HW
• Various “flavors” and branded versions of
Kubernetes exist
• e.g. https://k3s.io/ a lightweight distribution for IoT
Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com
Level 3 – Rancher
22
• https://rancher.com
• It’s a flavor of Kubernetes
• Built for enterprise deployments at scale
• Contains management and orchestration
• Open source, but not free
• Runs on virtualized machine or bare metal
Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com
Level 3 – OpenShift
23
https://www.openshift.com/
• It’s a flavor of Kubernetes
• Built for enterprise deployments at scale
• Contains management and orchestration
• Strong focus on security
• Commercial Product
• Community version : OKD https://www.okd.io/
• Runs on virtualized machine or bare metal
Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com
Container Adoption @ YellowSphere
24
HCL
• using Docker for automated product testing
• Software Factory (SoFy)
HCL Hosting partner: factor-y
• Domino on K8s hosting services with fully automated deployment
DNUG
• Sametime 11.5 Premium meeting server
Large Domino Customer (Not to be named)
• Domino applications hosted today in house moving to K8s
Business Partner
• Developing a mobile client for HCL Traveler
• Testing with different versions. Updating via image update
Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com
Kubernetes: All About Orchestration
25
After playing with Docker containers and seeing some value, questions typically arise:
1. Could I use containerized apps in our dev environment or even in our product?
2. Do I need to use the docker command line tool to manage the whole lifecycle of containerized apps?
3. If I want to build an app with multiple containers how do they find and talk to each other?
4. If I want to run containerized apps in places other than my machine, how do I do that?
5. How do companies that are fully bought in to containers deal with production grade concerns:
scaling, resiliency, update/rollback, security, true CI/CD, logging/monitoring
Kubernetes helps with these questions and more
Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com
Kubernetes Architecture: Don’t worry if this looks complicated!
Shared Storage
Local / SAN / NFS / AWS / …
Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com
Kubernetes for End Users
27
Most teams work with Kubernetes using a “declarative approach”:
• Basically “kubectl apply” + yaml
• This is how to tell Kubernetes what state you’d like the system to be in:
• Kubernetes is listening for changes and will try get/keep the system in the given state.
Understanding Kubernetes Objects:
Pod, Service, Namespace, Volume, Deployment, Ingress, others
Plenty of examples are just a web search away.
Easy to think you are struggling with a problem unique to your use case, but chances are
there is already a well known solution, and usually many solutions
Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com
Kubernetes Cluster
Key Concepts From the Ground Up For End Users
28
Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com
Kubernetes Cluster
Key Concepts From the Ground Up For End Users
29
Container
(REST API)
Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com
Kubernetes Cluster
Pod
label: “myapp”
Key Concepts From the Ground Up For End Users
30
Container
(REST API)
10.0.0.1 : 8080
Pod = smallest
deployable unit in
kubernetes
Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com
Kubernetes Cluster
Deployment
Pod
label: “myapp”
Key Concepts From the Ground Up For End Users
31
Container
(REST API)
10.0.0.1 : 8080
Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com
Kubernetes Cluster
Deployment
Pod
label: “myapp”
Key Concepts From the Ground Up For End Users
32
Container
(REST API)
Pod
Label: “myapp”
Container
(REST API)
10.0.0.1 : 8080
10.0.0.2: 8080
Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com
Kubernetes Cluster
Deployment
Pod
label: “myapp”
Key Concepts From the Ground Up For End Users
33
Container
(REST API)
Pod
Label: “myapp”
Container
(REST API)
10.0.0.1 : 8080
10.0.0.2: 8080
Service
selector: “myapp”
10.0.0.3 : 80
Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com
Kubernetes Cluster
Deployment
Pod
label: “myapp”
Key Concepts From the Ground Up For End Users
34
Container
(REST API)
Pod
Label: “myapp”
Container
(REST API)
10.0.0.1 : 8080
10.0.0.2: 8080
Service
selector: “myapp”
10.0.0.3 : 80
Ingress
selector: “myapp”
35.15.67.219 : 443
foo.com/api
Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com
Kubernetes Cluster
Deployment
Pod
label: “myapp”
Key Concepts From the Ground Up For End Users
35
Container
(REST API)
Pod
Label: “myapp”
Container
(REST API)
10.0.0.1 : 8080
10.0.0.2: 8080
Service
selector: “myapp”
10.0.0.3 : 80
Ingress
selector: “myapp”
35.15.67.219 : 443
foo.com/api
foo.com/home
Service
selector: “foo”
10.0.0.4 : 80
Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com
Image Template
Container Application
Node Domino Server
Pod
kubelet Admin4.nsf
etcd
Names.nsf
Cldbdir.nsf
CLI Domino console
Controller DDM Probe
Volume
Domino Data
Directory
=
=
=
=
Kube-proxy Passthru
=
Container Terminology for Domino Admins
Application DDM
=
=
=
=
=
+
Registry OpenNTF.org
=
Service Domino Cluster
=
YAML file
Your perfect
Documentation
=
Namespace Domain
=
Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com
Gotcha’s
38
• It’s always Linux in one form or another
• It’s always Kubernetes in one flavor or another
• YAML replaces PDF
• The goal is not a container…
…it is to have a fully managed container
• Domino != microservices, but greatly benefits from k8s’
• Domino Admins vs. k8s Admins
• Have a completely different mindset
• Don’t speak the same language - communication requires translation/a dictionary
Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com
Recommendations for Domino
39
Multiple Domino Servers
• TCP Port 1352 can only be used once per IP
• One IP address for each Domino server
• Port mapping in Notes Client using
connection documents
Licensing
• Production deployment of HCL Domino
requires a license
PVU / CEO / Express
High Availability
Kubernetes clusters do not replace Domino
Clusters
• Deploy Domino cluster nodes to different
kubernetes worker nodes
When to use
If your idea does not
already exist, create a
new idea and format
your idea like:
“As a <insert role>, I
would like to be able to
<insert action> in order
to <insert need>.”
• Where we gather and
prioritize your ideas
• Where we want you to
add, vote, comment on
and share as many ideas
as you like.
Create as many ideas
as you’d like, but
remember to keep
each idea, separate.
Do not create idea
that consist of more
than one request for
enhancement.
https://domino.ideas.aha.io/
1 2 3
Search the forum to
see if your idea already
exists.
Vote for any ideas and
add any additional
comments that you
may have related to
that idea.
And, please follow these three steps:
Questions & Keep the Ideas Coming – Domino Ideas Portal
$8.4 BILLION | 132,000+ IDEAPRENEURS | 44 COUNTRIES
Hands On Domino Docker
Daniel Nashed, Nash!Com
#dominoforever
About Daniel Nashed
 Nash!Com – HCL Business Partner
 Focus: Cross-Platform C-API, HCL Domino® Infrastructure,
Administration, Integration, Performance, Security,
Troubleshooting and HCL Traveler
 Author: Domino on Linux®/UNIX® Start Script
 Co-Author: Domino Docker Community GitHub Project
Docker Installation
What's going on with Docker?
 Docker was innovator but now other projects took the lead
 Also Kubernetes (K8s) stops supporting Docker
 The brand new Docker CE 20.10 & Docker Desktop 3.0 can't keep up with other projects
 Podman
 Has interesting new integration “Podman Play” allowing
to bridge configurations for K8s YML configurations
 Can be used as a almost 1:1 replacement for Docker functionality
 Podman is fully supported by our GitHub project – the command line is very similar
 But: Whatever software we use – it is all about IMAGES and CONTAINERS
Install Docker Community Edition 20.10
 Works better on CentOS 8 – Installs without hacks, Firewall fixed & easier to install
 New Docker installation script – works automatically
 curl -fsSL https://get.docker.com -o get-docker.sh
 chmod 755 get-docker.sh
 ./get-docker.sh
 Enable (auto start) and start the Docker Service
 systemctl enable --now docker
 Check configuration
 docker version  Installing Podman would be a single command:
yum install -y podman
Domino on Docker
1. Get the Domino Docker Scripts from GitHub
 Install git software
 yum install -y git
 Create a new directory for your git projects and switch to it
 mkdir -p /local/github
 cd /local/github
 Clone ("download") the repository locally
 git clone https://github.com/IBM/domino-docker
 cd domino-docker
 git checkout develop
2. Download or map Domino Software
 The Open Source Docker Script requires software either locally or download location
 We can't provide software or a complete image – But we can make it easy for you
 Two different modes
 Local Directory
 Standard Directory “software” → hosted from a temporary NGINX container
 Example: /local/github/domino-docker/software
 Download from a remote host
 Edit DOWNLOAD_FROM in the build.sh
 Example: DOWNLOAD_FROM=http://centos-mirror.nashcom.loc/software
3. Docker Image “build” Process
 A central script “build.sh” is used to invoke the build
 Currently implemented images
 ./build.sh domino
 ./build.sh traveler (builds an image based on the “domino” image)
 ./build.sh volt (builds an image based on the “domino” image)
 By default the latest version is used
 You could choose a specific version by explicitly specifying the version and options..
 ./build.sh domino 12.0.0beta1 dockerfile_centos8 latest12 -nolinuxupd
 Software.txt contains up to date download names and SHA256 hashes
Build & Run HCL Volt
 HCL Volt is based on Domino
 So let's build an add-on image on top of an existing Domino V12 Beta 1 image...
 CentOS → Domino → Volt
 Demo: ./build.sh volt dockerfile_domino12 -nolinuxupd
 It's more than just a standard image...
We added automatic Domino & Volt configuration and basic certificate generation
 Volt databases, HTTPS configuration, DomCfg, Session based authentication …
4. Run a Domino Domino Server via Docker CLI
 Command-Line to create a container from an image
 docker run -it -p 80:80 -p 1352:1352 
--hostname=myhost --name mycontainer 
--cap-add=SYS_PTRACE 
--env-file env_domino 
-v notesdata:/local/notesdata domino-docker:V1101FP2_10202020prod
 Details
 --cap-add-SYSPTRACE → important for NSD / gdb
 --env-file → passes environment variables to the container
 -p → publishes external ports (internally sets firewall rules automatically!)
 -v → Maps volumes to the container
4. Run via Docker Compose
 Docker Compoes uses a YAML files to define one or multiple containers in one service
 They can join the same Docker “network”
 Sametime Meetings Premium is using docker-compose to bring up multiple containers as one “service”
 Helm is used for K8s – Allows to scale adding more pods on demand
 Many other projects use docker-compose.yml files to describe their services
 Sametime 8.5 Premium uses docker-compose to define and manage all containers
 In the end it's still managing the same containers we already know in a different way
 See examples in the Git repository
Brand new – Domino Container Start Script
 This will replace the management script in our Domino Docker Git project
 Part of Nash!Com start script, integrated into the Domino Docker project
 Already included in the Domino Docker Project
 Similar options you know from the Domino on Linux start script
 “One stop shopping” for all your operations
 Includes Podman systemd integration
 Custom image build support!
 Let's have a look …
Questions & Feedback ?!?
CentOS 8.x Stream
Stream
CentOS Stream – What's going on?
 There is a lot of confusion
 It's not new information!
 An it isn't as critical as many discuss it
 There is no such thing as Enterprise level free beer
 You always have to pay a price or take a “risk”
 But CentOS Stream will still be a stable and free enterprise Linux
 It will be the version becoming the next RHEL dot release
Quote from: Matthew Miller
Distinguished Engineer at Red Hat / Fedora Project Leader
Stream
Bleeding edge
Free & based on
stable RHEL
Enterprise Release
Stable / Commercial
Ahead of REHL becomes
the next RHEL dot release
Enterprise Release
Stable / Commercial
→
Bleeding edge
→
→
→
Some important Technologies
Git
 A tool you should know today!
 Many software developers and companies use Git to manage their source code
 GitHub is a platform where you find most of the software projects
 We can't avoid them even they are owned by Microsoft
 Most important commands for using our Git project
 “git clone” – to clone a project
 “git checkout develop” – to switch to the develop branch of the project
 “git pull” – to update your local repo
{JSON} – A standard you can't avoid
 https://www.json.org
 Most configuration files today are in JSON
 It replaces XML in many cases.
 If you never looked into JSON you have start now!
 The most popular parser on Linux:
 JQ – https://stedolan.github.io/jq/
 Very powerful and included in the Linux distributions
YAML – Another standard you can't avoid
 https://yaml.org/
 YAML / YML is often used in the container world to describe a configuration
 For example used in docker-compose and K8s configuration
 Very reduced & simplified format
 What homepage says:
 “YAML: YAML Ain't Markup Language”
 “What It Is: YAML is a human friendly data serialization standard for all programming languages.”
 Tool for Linux: https://mikefarah.gitbook.io/yq/
XML –> JSON → YAML
 Source: https://developer.ibm.com/technologies/containers/tutorials/yaml-basics-and-usage-in-kubernetes/
 Great video with all you need to start: https://www.youtube.com/watch?v=1uFVr15xDGg
Appendix: Docker Reference Information
Working with Docker
 Important commands
 docker images → lists all locally available images
 docker ps → shows all running containers
 docker ps -a → also shows stopped containers
 docker run → creates container from image and starts it
 docker start/stop → starts/stops existing containers
 docker inspect → shows detailed information for a container
 docker volume ls → lists existing volumes
 docker volume rm → removes a volume
 docker exec → executes a command inside a container
Docker Volumes
 By default all data is stored in the container
 For applications with local storage requirements, this
does not work well
 Therefore Docker supports “volumes” which are mapped
in to the container
 The data from the local directory will be copied to
the volume at first run when the volume is empty
 The default implementation is a local disk
 You can either create a volume manually, mount
existing directories or let Docker create it
 https://docs.docker.com/storage/volumes/
Docker Volumes
 Multiple options
 You can specify an existing volume in your run statement
 docker run --rm -it -v /local/data1:/local/data centos:latest bash
 Or let Docker create a local volume
 docker run --rm -it -v test-data1:/local/data centos:latest bash
 Default location: /var/lib/docker/volumes
 Or for example use a NFS mount on a NAS
 docker volume create --driver local --opt type=nfs --opt o=addr=192.168.96.41,rw
--opt device=:/data/docker_vol --name nfsvol
 docker run --rm -it -v nfsvol:/local centos:latest bash
Docker Volume Commands
 docker volume ls
 Lists all volumes
 docker volume inspect my-vol
 Shows details about one volume
 docker volume create my-vol
 Creates local volume
 docker volume rm my-vol
 Removes volume!
 docker system df
 Checks for used/free space
 docker system prune
 WARNING! This will remove:
- all stopped containers
- all networks not used by at least one container
- all dangling images
- all dangling build cache
QUESTIONS?
Use the GoToWebinar Questions Pane
Please keep all questions related to the
topics that our speakers are discussing!!!
Unrelated Question => post at:
http://openntf.slack.com/

More Related Content

What's hot

September-2021 OpenNTF Webinar: Domino Online Meeting Integration (DOMI)
September-2021 OpenNTF Webinar: Domino Online Meeting Integration (DOMI)September-2021 OpenNTF Webinar: Domino Online Meeting Integration (DOMI)
September-2021 OpenNTF Webinar: Domino Online Meeting Integration (DOMI)
Howard Greenberg
 
April, 2021 OpenNTF Webinar - Domino Administration Best Practices
April, 2021 OpenNTF Webinar - Domino Administration Best PracticesApril, 2021 OpenNTF Webinar - Domino Administration Best Practices
April, 2021 OpenNTF Webinar - Domino Administration Best Practices
Howard Greenberg
 
Bp308 Ibm Lotus Domino Web Facelift Using Ajax And Dxl
Bp308 Ibm Lotus Domino Web Facelift Using Ajax And DxlBp308 Ibm Lotus Domino Web Facelift Using Ajax And Dxl
Bp308 Ibm Lotus Domino Web Facelift Using Ajax And Dxl
dominion
 
Enterprise Docker Requires a Private Registry
Enterprise Docker Requires a Private RegistryEnterprise Docker Requires a Private Registry
Enterprise Docker Requires a Private Registry
Chris Riley ☁
 
Hnd201 Building Ibm Lotus Domino Applications With Ajax Plugins
Hnd201 Building Ibm Lotus Domino Applications With Ajax PluginsHnd201 Building Ibm Lotus Domino Applications With Ajax Plugins
Hnd201 Building Ibm Lotus Domino Applications With Ajax Plugins
dominion
 
OpenNTF Webinar, May 19, 2020
OpenNTF Webinar, May 19, 2020OpenNTF Webinar, May 19, 2020
OpenNTF Webinar, May 19, 2020
Howard Greenberg
 
Implementing Certificate Based Authentication for HCL Traveler Access - Enga...
 Implementing Certificate Based Authentication for HCL Traveler Access - Enga... Implementing Certificate Based Authentication for HCL Traveler Access - Enga...
Implementing Certificate Based Authentication for HCL Traveler Access - Enga...
Milan Matejic
 
DockerCon SF 2015: A New Model for Image Distribution
DockerCon SF 2015: A New Model for Image DistributionDockerCon SF 2015: A New Model for Image Distribution
DockerCon SF 2015: A New Model for Image Distribution
Docker, Inc.
 
Managing Open Source software in the Docker era
Managing Open Source software in the Docker era Managing Open Source software in the Docker era
Managing Open Source software in the Docker era
nexB Inc.
 
3 docker cloud_build_image_and_devops_hands_on
3 docker cloud_build_image_and_devops_hands_on3 docker cloud_build_image_and_devops_hands_on
3 docker cloud_build_image_and_devops_hands_on
FEG
 
Docker - A high level introduction to dockers and containers
Docker - A high level introduction to dockers and containersDocker - A high level introduction to dockers and containers
Docker - A high level introduction to dockers and containers
Dr Ganesh Iyer
 
Git 101 - Crash Course in Version Control using Git
Git 101 - Crash Course in Version Control using GitGit 101 - Crash Course in Version Control using Git
Git 101 - Crash Course in Version Control using Git
Geoff Hoffman
 
DockerCon SF 2015: Ben Golub's Keynote Day 1
DockerCon SF 2015: Ben Golub's Keynote Day 1DockerCon SF 2015: Ben Golub's Keynote Day 1
DockerCon SF 2015: Ben Golub's Keynote Day 1
Docker, Inc.
 
How to use Concourse CI to deliver BOSH releases
How to use Concourse CI to deliver BOSH releasesHow to use Concourse CI to deliver BOSH releases
How to use Concourse CI to deliver BOSH releases
Amit Gupta
 
.docker : How to deploy Digital Experience in a container, drinking a cup of ...
.docker : How to deploy Digital Experience in a container, drinking a cup of ....docker : How to deploy Digital Experience in a container, drinking a cup of ...
.docker : How to deploy Digital Experience in a container, drinking a cup of ...
ICON UK EVENTS Limited
 
321 codeincontainer brewbox
321 codeincontainer brewbox321 codeincontainer brewbox
321 codeincontainer brewbox
Lino Telera
 
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
Heiko Voigt
 
Drupal 8 and Pantheon
Drupal 8 and PantheonDrupal 8 and Pantheon
Drupal 8 and Pantheon
Pantheon
 
How to contribute for Docker Labs
How to contribute for Docker LabsHow to contribute for Docker Labs
How to contribute for Docker Labs
Ajeet Singh Raina
 
DockerCon Recap - Online Meetup by Ben Firshman
DockerCon Recap - Online Meetup by Ben FirshmanDockerCon Recap - Online Meetup by Ben Firshman
DockerCon Recap - Online Meetup by Ben Firshman
Docker, Inc.
 

What's hot (20)

September-2021 OpenNTF Webinar: Domino Online Meeting Integration (DOMI)
September-2021 OpenNTF Webinar: Domino Online Meeting Integration (DOMI)September-2021 OpenNTF Webinar: Domino Online Meeting Integration (DOMI)
September-2021 OpenNTF Webinar: Domino Online Meeting Integration (DOMI)
 
April, 2021 OpenNTF Webinar - Domino Administration Best Practices
April, 2021 OpenNTF Webinar - Domino Administration Best PracticesApril, 2021 OpenNTF Webinar - Domino Administration Best Practices
April, 2021 OpenNTF Webinar - Domino Administration Best Practices
 
Bp308 Ibm Lotus Domino Web Facelift Using Ajax And Dxl
Bp308 Ibm Lotus Domino Web Facelift Using Ajax And DxlBp308 Ibm Lotus Domino Web Facelift Using Ajax And Dxl
Bp308 Ibm Lotus Domino Web Facelift Using Ajax And Dxl
 
Enterprise Docker Requires a Private Registry
Enterprise Docker Requires a Private RegistryEnterprise Docker Requires a Private Registry
Enterprise Docker Requires a Private Registry
 
Hnd201 Building Ibm Lotus Domino Applications With Ajax Plugins
Hnd201 Building Ibm Lotus Domino Applications With Ajax PluginsHnd201 Building Ibm Lotus Domino Applications With Ajax Plugins
Hnd201 Building Ibm Lotus Domino Applications With Ajax Plugins
 
OpenNTF Webinar, May 19, 2020
OpenNTF Webinar, May 19, 2020OpenNTF Webinar, May 19, 2020
OpenNTF Webinar, May 19, 2020
 
Implementing Certificate Based Authentication for HCL Traveler Access - Enga...
 Implementing Certificate Based Authentication for HCL Traveler Access - Enga... Implementing Certificate Based Authentication for HCL Traveler Access - Enga...
Implementing Certificate Based Authentication for HCL Traveler Access - Enga...
 
DockerCon SF 2015: A New Model for Image Distribution
DockerCon SF 2015: A New Model for Image DistributionDockerCon SF 2015: A New Model for Image Distribution
DockerCon SF 2015: A New Model for Image Distribution
 
Managing Open Source software in the Docker era
Managing Open Source software in the Docker era Managing Open Source software in the Docker era
Managing Open Source software in the Docker era
 
3 docker cloud_build_image_and_devops_hands_on
3 docker cloud_build_image_and_devops_hands_on3 docker cloud_build_image_and_devops_hands_on
3 docker cloud_build_image_and_devops_hands_on
 
Docker - A high level introduction to dockers and containers
Docker - A high level introduction to dockers and containersDocker - A high level introduction to dockers and containers
Docker - A high level introduction to dockers and containers
 
Git 101 - Crash Course in Version Control using Git
Git 101 - Crash Course in Version Control using GitGit 101 - Crash Course in Version Control using Git
Git 101 - Crash Course in Version Control using Git
 
DockerCon SF 2015: Ben Golub's Keynote Day 1
DockerCon SF 2015: Ben Golub's Keynote Day 1DockerCon SF 2015: Ben Golub's Keynote Day 1
DockerCon SF 2015: Ben Golub's Keynote Day 1
 
How to use Concourse CI to deliver BOSH releases
How to use Concourse CI to deliver BOSH releasesHow to use Concourse CI to deliver BOSH releases
How to use Concourse CI to deliver BOSH releases
 
.docker : How to deploy Digital Experience in a container, drinking a cup of ...
.docker : How to deploy Digital Experience in a container, drinking a cup of ....docker : How to deploy Digital Experience in a container, drinking a cup of ...
.docker : How to deploy Digital Experience in a container, drinking a cup of ...
 
321 codeincontainer brewbox
321 codeincontainer brewbox321 codeincontainer brewbox
321 codeincontainer brewbox
 
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
 
Drupal 8 and Pantheon
Drupal 8 and PantheonDrupal 8 and Pantheon
Drupal 8 and Pantheon
 
How to contribute for Docker Labs
How to contribute for Docker LabsHow to contribute for Docker Labs
How to contribute for Docker Labs
 
DockerCon Recap - Online Meetup by Ben Firshman
DockerCon Recap - Online Meetup by Ben FirshmanDockerCon Recap - Online Meetup by Ben Firshman
DockerCon Recap - Online Meetup by Ben Firshman
 

Similar to January OpenNTF Webinar: 4D - Domino Docker Deep Dive

Docking, loading, running domino on docker v12
Docking, loading, running domino on docker v12Docking, loading, running domino on docker v12
Docking, loading, running domino on docker v12
Daniele Vistalli
 
Docker fundamentals
Docker fundamentalsDocker fundamentals
Docker fundamentals
Alper Unal
 
Docker basic
Docker basicDocker basic
Docker basic
Somenath Ghosh
 
Dockerize the World - presentation from Hradec Kralove
Dockerize the World - presentation from Hradec KraloveDockerize the World - presentation from Hradec Kralove
Dockerize the World - presentation from Hradec Kralove
damovsky
 
Dockerize the World
Dockerize the WorldDockerize the World
Dockerize the World
damovsky
 
Containers and Microservices for Realists
Containers and Microservices for RealistsContainers and Microservices for Realists
Containers and Microservices for Realists
Oracle Developers
 
Containers and microservices for realists
Containers and microservices for realistsContainers and microservices for realists
Containers and microservices for realists
Karthik Gaekwad
 
Domino on docker version 2
Domino on docker version 2Domino on docker version 2
Domino on docker version 2
Slobodan Lohja
 
Docker-Hanoi @DKT , Presentation about Docker Ecosystem
Docker-Hanoi @DKT , Presentation about Docker EcosystemDocker-Hanoi @DKT , Presentation about Docker Ecosystem
Docker-Hanoi @DKT , Presentation about Docker Ecosystem
Van Phuc
 
Docker, how to use it. organize a meeting with IBM products...
Docker, how to use it. organize a meeting with IBM products...Docker, how to use it. organize a meeting with IBM products...
Docker, how to use it. organize a meeting with IBM products...
Andrea Fontana
 
IBM Bluemix Paris Meetup #14 - Le Village by CA - 20160413 - Introduction à D...
IBM Bluemix Paris Meetup #14 - Le Village by CA - 20160413 - Introduction à D...IBM Bluemix Paris Meetup #14 - Le Village by CA - 20160413 - Introduction à D...
IBM Bluemix Paris Meetup #14 - Le Village by CA - 20160413 - Introduction à D...
IBM France Lab
 
.docker : how to deploy Digital Experience in a container drinking a cup of c...
.docker : how to deploy Digital Experience in a container drinking a cup of c....docker : how to deploy Digital Experience in a container drinking a cup of c...
.docker : how to deploy Digital Experience in a container drinking a cup of c...
Andrea Fontana
 
docker : how to deploy Digital Experience in a container drinking a cup of co...
docker : how to deploy Digital Experience in a container drinking a cup of co...docker : how to deploy Digital Experience in a container drinking a cup of co...
docker : how to deploy Digital Experience in a container drinking a cup of co...
Matteo Bisi
 
Docker based-pipelines
Docker based-pipelinesDocker based-pipelines
Docker based-pipelines
DevOps.com
 
Docker Containers Deep Dive
Docker Containers Deep DiveDocker Containers Deep Dive
Docker Containers Deep Dive
Will Kinard
 
Introduction to Docker - VIT Campus
Introduction to Docker - VIT CampusIntroduction to Docker - VIT Campus
Introduction to Docker - VIT Campus
Ajeet Singh Raina
 
Introduction to Docker - Vellore Institute of Technology
Introduction to Docker - Vellore Institute of TechnologyIntroduction to Docker - Vellore Institute of Technology
Introduction to Docker - Vellore Institute of Technology
Ajeet Singh Raina
 
Docker and Microsoft - Windows Server 2016 Technical Deep Dive
Docker and Microsoft - Windows Server 2016 Technical Deep DiveDocker and Microsoft - Windows Server 2016 Technical Deep Dive
Docker and Microsoft - Windows Server 2016 Technical Deep Dive
Docker, Inc.
 
Dockerize All The Things
Dockerize All The ThingsDockerize All The Things
Dockerize All The Things
Chris Tankersley
 
Week 8 lecture material
Week 8 lecture materialWeek 8 lecture material
Week 8 lecture material
Ankit Gupta
 

Similar to January OpenNTF Webinar: 4D - Domino Docker Deep Dive (20)

Docking, loading, running domino on docker v12
Docking, loading, running domino on docker v12Docking, loading, running domino on docker v12
Docking, loading, running domino on docker v12
 
Docker fundamentals
Docker fundamentalsDocker fundamentals
Docker fundamentals
 
Docker basic
Docker basicDocker basic
Docker basic
 
Dockerize the World - presentation from Hradec Kralove
Dockerize the World - presentation from Hradec KraloveDockerize the World - presentation from Hradec Kralove
Dockerize the World - presentation from Hradec Kralove
 
Dockerize the World
Dockerize the WorldDockerize the World
Dockerize the World
 
Containers and Microservices for Realists
Containers and Microservices for RealistsContainers and Microservices for Realists
Containers and Microservices for Realists
 
Containers and microservices for realists
Containers and microservices for realistsContainers and microservices for realists
Containers and microservices for realists
 
Domino on docker version 2
Domino on docker version 2Domino on docker version 2
Domino on docker version 2
 
Docker-Hanoi @DKT , Presentation about Docker Ecosystem
Docker-Hanoi @DKT , Presentation about Docker EcosystemDocker-Hanoi @DKT , Presentation about Docker Ecosystem
Docker-Hanoi @DKT , Presentation about Docker Ecosystem
 
Docker, how to use it. organize a meeting with IBM products...
Docker, how to use it. organize a meeting with IBM products...Docker, how to use it. organize a meeting with IBM products...
Docker, how to use it. organize a meeting with IBM products...
 
IBM Bluemix Paris Meetup #14 - Le Village by CA - 20160413 - Introduction à D...
IBM Bluemix Paris Meetup #14 - Le Village by CA - 20160413 - Introduction à D...IBM Bluemix Paris Meetup #14 - Le Village by CA - 20160413 - Introduction à D...
IBM Bluemix Paris Meetup #14 - Le Village by CA - 20160413 - Introduction à D...
 
.docker : how to deploy Digital Experience in a container drinking a cup of c...
.docker : how to deploy Digital Experience in a container drinking a cup of c....docker : how to deploy Digital Experience in a container drinking a cup of c...
.docker : how to deploy Digital Experience in a container drinking a cup of c...
 
docker : how to deploy Digital Experience in a container drinking a cup of co...
docker : how to deploy Digital Experience in a container drinking a cup of co...docker : how to deploy Digital Experience in a container drinking a cup of co...
docker : how to deploy Digital Experience in a container drinking a cup of co...
 
Docker based-pipelines
Docker based-pipelinesDocker based-pipelines
Docker based-pipelines
 
Docker Containers Deep Dive
Docker Containers Deep DiveDocker Containers Deep Dive
Docker Containers Deep Dive
 
Introduction to Docker - VIT Campus
Introduction to Docker - VIT CampusIntroduction to Docker - VIT Campus
Introduction to Docker - VIT Campus
 
Introduction to Docker - Vellore Institute of Technology
Introduction to Docker - Vellore Institute of TechnologyIntroduction to Docker - Vellore Institute of Technology
Introduction to Docker - Vellore Institute of Technology
 
Docker and Microsoft - Windows Server 2016 Technical Deep Dive
Docker and Microsoft - Windows Server 2016 Technical Deep DiveDocker and Microsoft - Windows Server 2016 Technical Deep Dive
Docker and Microsoft - Windows Server 2016 Technical Deep Dive
 
Dockerize All The Things
Dockerize All The ThingsDockerize All The Things
Dockerize All The Things
 
Week 8 lecture material
Week 8 lecture materialWeek 8 lecture material
Week 8 lecture material
 

More from Howard Greenberg

January OpenNTF Webinar - Backup your Domino Server - New Options in V12
January OpenNTF Webinar - Backup your Domino Server - New Options in V12January OpenNTF Webinar - Backup your Domino Server - New Options in V12
January OpenNTF Webinar - Backup your Domino Server - New Options in V12
Howard Greenberg
 
BRPA November Meeting
BRPA November MeetingBRPA November Meeting
BRPA November Meeting
Howard Greenberg
 
October OpenNTF Webinar - What we like about Domino/Notes 12, recommended new...
October OpenNTF Webinar - What we like about Domino/Notes 12, recommended new...October OpenNTF Webinar - What we like about Domino/Notes 12, recommended new...
October OpenNTF Webinar - What we like about Domino/Notes 12, recommended new...
Howard Greenberg
 
June OpenNTF Webinar - Domino V12 Certification Manager
June OpenNTF Webinar - Domino V12 Certification ManagerJune OpenNTF Webinar - Domino V12 Certification Manager
June OpenNTF Webinar - Domino V12 Certification Manager
Howard Greenberg
 
July 2020 OpenNTF Webinar - Hear the Latest from the User Groups!
July 2020 OpenNTF Webinar - Hear the Latest from the User Groups!July 2020 OpenNTF Webinar - Hear the Latest from the User Groups!
July 2020 OpenNTF Webinar - Hear the Latest from the User Groups!
Howard Greenberg
 
Open ntf 2020-jun
Open ntf 2020-junOpen ntf 2020-jun
Open ntf 2020-jun
Howard Greenberg
 
Dev112 let's calendar that
Dev112   let's calendar thatDev112   let's calendar that
Dev112 let's calendar that
Howard Greenberg
 
Bp101-Can Domino Be Hacked
Bp101-Can Domino Be HackedBp101-Can Domino Be Hacked
Bp101-Can Domino Be Hacked
Howard Greenberg
 
MWLUG Session- AD112 - Take a Trip Into the Forest - A Java Primer on Maps, ...
MWLUG Session-  AD112 - Take a Trip Into the Forest - A Java Primer on Maps, ...MWLUG Session-  AD112 - Take a Trip Into the Forest - A Java Primer on Maps, ...
MWLUG Session- AD112 - Take a Trip Into the Forest - A Java Primer on Maps, ...
Howard Greenberg
 
Connect 2016-Move Your XPages Applications to the Fast Lane
Connect 2016-Move Your XPages Applications to the Fast LaneConnect 2016-Move Your XPages Applications to the Fast Lane
Connect 2016-Move Your XPages Applications to the Fast Lane
Howard Greenberg
 
May 2014-webinar
May 2014-webinarMay 2014-webinar
May 2014-webinar
Howard Greenberg
 
Webinar: From Frustration to Fascination: Dissecting Replication
Webinar: From Frustration to Fascination: Dissecting ReplicationWebinar: From Frustration to Fascination: Dissecting Replication
Webinar: From Frustration to Fascination: Dissecting Replication
Howard Greenberg
 
XPages Application Layout Control - TLCC March, 2014 Webinar
XPages Application Layout Control - TLCC March, 2014 WebinarXPages Application Layout Control - TLCC March, 2014 Webinar
XPages Application Layout Control - TLCC March, 2014 Webinar
Howard Greenberg
 
Creating a Great XPages User Interface, TLCC Teamstudio Webinar - Feb, 2014
Creating a Great XPages User Interface, TLCC Teamstudio Webinar - Feb, 2014Creating a Great XPages User Interface, TLCC Teamstudio Webinar - Feb, 2014
Creating a Great XPages User Interface, TLCC Teamstudio Webinar - Feb, 2014
Howard Greenberg
 
Connect 2014 - JMP102: Creating a Great XPages User Interface
Connect 2014 - JMP102: Creating a Great XPages User InterfaceConnect 2014 - JMP102: Creating a Great XPages User Interface
Connect 2014 - JMP102: Creating a Great XPages User Interface
Howard Greenberg
 
Connect 2014 - BP202: Rapid XPages Development Using the Application Layout C...
Connect 2014 - BP202: Rapid XPages Development Using the Application Layout C...Connect 2014 - BP202: Rapid XPages Development Using the Application Layout C...
Connect 2014 - BP202: Rapid XPages Development Using the Application Layout C...
Howard Greenberg
 
Jmp103-Get the Jump on Mobilizing Your Notes and Domino Applications Today!
Jmp103-Get the Jump on Mobilizing Your Notes and Domino Applications Today!Jmp103-Get the Jump on Mobilizing Your Notes and Domino Applications Today!
Jmp103-Get the Jump on Mobilizing Your Notes and Domino Applications Today!
Howard Greenberg
 

More from Howard Greenberg (17)

January OpenNTF Webinar - Backup your Domino Server - New Options in V12
January OpenNTF Webinar - Backup your Domino Server - New Options in V12January OpenNTF Webinar - Backup your Domino Server - New Options in V12
January OpenNTF Webinar - Backup your Domino Server - New Options in V12
 
BRPA November Meeting
BRPA November MeetingBRPA November Meeting
BRPA November Meeting
 
October OpenNTF Webinar - What we like about Domino/Notes 12, recommended new...
October OpenNTF Webinar - What we like about Domino/Notes 12, recommended new...October OpenNTF Webinar - What we like about Domino/Notes 12, recommended new...
October OpenNTF Webinar - What we like about Domino/Notes 12, recommended new...
 
June OpenNTF Webinar - Domino V12 Certification Manager
June OpenNTF Webinar - Domino V12 Certification ManagerJune OpenNTF Webinar - Domino V12 Certification Manager
June OpenNTF Webinar - Domino V12 Certification Manager
 
July 2020 OpenNTF Webinar - Hear the Latest from the User Groups!
July 2020 OpenNTF Webinar - Hear the Latest from the User Groups!July 2020 OpenNTF Webinar - Hear the Latest from the User Groups!
July 2020 OpenNTF Webinar - Hear the Latest from the User Groups!
 
Open ntf 2020-jun
Open ntf 2020-junOpen ntf 2020-jun
Open ntf 2020-jun
 
Dev112 let's calendar that
Dev112   let's calendar thatDev112   let's calendar that
Dev112 let's calendar that
 
Bp101-Can Domino Be Hacked
Bp101-Can Domino Be HackedBp101-Can Domino Be Hacked
Bp101-Can Domino Be Hacked
 
MWLUG Session- AD112 - Take a Trip Into the Forest - A Java Primer on Maps, ...
MWLUG Session-  AD112 - Take a Trip Into the Forest - A Java Primer on Maps, ...MWLUG Session-  AD112 - Take a Trip Into the Forest - A Java Primer on Maps, ...
MWLUG Session- AD112 - Take a Trip Into the Forest - A Java Primer on Maps, ...
 
Connect 2016-Move Your XPages Applications to the Fast Lane
Connect 2016-Move Your XPages Applications to the Fast LaneConnect 2016-Move Your XPages Applications to the Fast Lane
Connect 2016-Move Your XPages Applications to the Fast Lane
 
May 2014-webinar
May 2014-webinarMay 2014-webinar
May 2014-webinar
 
Webinar: From Frustration to Fascination: Dissecting Replication
Webinar: From Frustration to Fascination: Dissecting ReplicationWebinar: From Frustration to Fascination: Dissecting Replication
Webinar: From Frustration to Fascination: Dissecting Replication
 
XPages Application Layout Control - TLCC March, 2014 Webinar
XPages Application Layout Control - TLCC March, 2014 WebinarXPages Application Layout Control - TLCC March, 2014 Webinar
XPages Application Layout Control - TLCC March, 2014 Webinar
 
Creating a Great XPages User Interface, TLCC Teamstudio Webinar - Feb, 2014
Creating a Great XPages User Interface, TLCC Teamstudio Webinar - Feb, 2014Creating a Great XPages User Interface, TLCC Teamstudio Webinar - Feb, 2014
Creating a Great XPages User Interface, TLCC Teamstudio Webinar - Feb, 2014
 
Connect 2014 - JMP102: Creating a Great XPages User Interface
Connect 2014 - JMP102: Creating a Great XPages User InterfaceConnect 2014 - JMP102: Creating a Great XPages User Interface
Connect 2014 - JMP102: Creating a Great XPages User Interface
 
Connect 2014 - BP202: Rapid XPages Development Using the Application Layout C...
Connect 2014 - BP202: Rapid XPages Development Using the Application Layout C...Connect 2014 - BP202: Rapid XPages Development Using the Application Layout C...
Connect 2014 - BP202: Rapid XPages Development Using the Application Layout C...
 
Jmp103-Get the Jump on Mobilizing Your Notes and Domino Applications Today!
Jmp103-Get the Jump on Mobilizing Your Notes and Domino Applications Today!Jmp103-Get the Jump on Mobilizing Your Notes and Domino Applications Today!
Jmp103-Get the Jump on Mobilizing Your Notes and Domino Applications Today!
 

Recently uploaded

SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024
Hironori Washizaki
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Łukasz Chruściel
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j
 
Launch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in MinutesLaunch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in Minutes
Roshan Dwivedi
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
Google
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
Rakesh Kumar R
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
Hornet Dynamics
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
Aftab Hussain
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
kalichargn70th171
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
Aftab Hussain
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
lorraineandreiamcidl
 
What is Augmented Reality Image Tracking
What is Augmented Reality Image TrackingWhat is Augmented Reality Image Tracking
What is Augmented Reality Image Tracking
pavan998932
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
mz5nrf0n
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j
 
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
mz5nrf0n
 

Recently uploaded (20)

SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
 
Launch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in MinutesLaunch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in Minutes
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
 
What is Augmented Reality Image Tracking
What is Augmented Reality Image TrackingWhat is Augmented Reality Image Tracking
What is Augmented Reality Image Tracking
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
 
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
 

January OpenNTF Webinar: 4D - Domino Docker Deep Dive

  • 1. OPENNTF WEBINARS January OpenNTF Webinar: 4D - Domino Docker Deep Dive
  • 2. AGENDA • Welcome – Howard Greenberg and Graham Acres • Thomas Hampel, Director, HCL Product Management • Daniel Nashed, HCL Lifetime Ambassador • Q and A - All
  • 3. ASKING QUESTIONS • First Question – Will this be recorded? • Yes, view on YouTube!!! • https://www.youtube.com/user/OpenNTF • Use the Questions Pane in GoToWebinar • We will get to your questions at the end of the webinar • The speakers will respond to your questions verbally • (not in the Questions pane) • Please keep all questions related to the topics that our speakers are discussing!!! • Unrelated Question => post at: • http://openntf.slack.com/
  • 4. THANKS TO THE OPENNTF SPONSORS • HCL made a significant contribution to help our organization • Funds these webinars! • Contests like Hackathons • Running the organization • Prominic donates all IT related services • Cloud Hosting for OpenNTF • Infrastructure management for HCL Domino and Atlassian Servers • System Administration for day-to-day operation
  • 5. THIS IS OUR COMMUNITY • Join us and get involved! • We are all volunteers • No effort is too small • If your idea is bigger than you can do on your own, we can connect you to a team to work on it • Test or help or modify an existing project • Write guides or documentation • Add reviews on projects / stars on Snippets
  • 6. NEXT WEBINAR • February OpenNTF Webinar: Introduction to Ansible for Newbies • For Domino admins and developers who would like to learn Ansible basics. • Christoph Stoettener, HCL Ambassador • Thursday, February 18, 2021 at 11:00 AM (New York time) • www.openntf.org/webinars
  • 8. Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com 2 Daniel Nashed § Nash!Com, Germany § HCL Business Partner / ISV § nsh@nashcom.de § http://blog.nashcom.de Thomas Hampel § HCL Germany § Director @ Product Management § thomas.hampel@pnp-hcl.com § https://blog.thomashampel.com Speakers
  • 9. Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com Problem Definition 3 Cost reduction Reusability Time to deploy CTRL C CTRL V + + Consistency A u t o m a t i o n R e s o u r c e O p t i m i z a t i o n S t a n d a r d i z a t i o n S t a n d a r d i z a t i o n
  • 10. Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com Containers make a difference… 1. Install Docker (if not already present) 2. Unzip sametime_meetings.zip 3. Modify .env file for local settings 4. Run install.sh Sametime Installation è 970 Pages ç
  • 11. Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com 5
  • 12. Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com CNCF Cloud Native Landscape Source: https://landscape.cncf.io/
  • 13. Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com (Docker) Containers • Isolating processes from each other • Share OS (kernel) and binaries/libraries (where appropriate) • Do not have an entire OS installed within • Designed to be portable • Usually single purpose Physical Hardware Operating System Docker Container Bins/Libs Bins/Libs App1 App1’ App 2 App 2’
  • 14. Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com Container Concept – Example : Domino 8 Kernel centos:latest domino:11.0.1 YourDominoApp Runtime/Writable R e f e r e n c e s p a r e n t Container is • a layered file system where each layer references the layer below • a runtime instance of an image. • not containing your persistent (Domino) data Images • Are used to create containers • Layers build on top of each other only the differences are stored in each layer.
  • 15. Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com Container Concept – Example : Domino 9 Kernel centos:latest domino:11.0.1 Domino Volt Runtime/Writable R e f e r e n c e s p a r e n t Container is • a layered file system where each layer references the layer below • a runtime instance of an image. • not containing your persistent (Domino) data Images • Are used to create containers • Layers build on top of each other only the differences are stored in each layer.
  • 16. Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com Docker Components Registry Docker registry hold images. These are public or private stores from which you upload or download images. Docker_Host Docker daemon Ref.: https://docs.docker.com/engine/understanding-docker/ A Docker image is a read-only template. e.g. containing Linux operating system with Apache and your WebApp installed. Docker images are used to create other images or Docker containers. The Docker client, is the primary user interface to Docker. It accepts commands from the user and communicates back and forth with a Docker daemon. Client Docker build Docker pull Docker run Images A Docker container holds everything that is needed for an application to run. Each container is created from a Docker image. Containers Docker volumes are shared storage areas for persistent data. Deleting the container will not delete the volume Volumes
  • 17. Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com Image Template Container Application CLI Domino console Volume Domino Data Directory Container Terminology for Domino Admins = = = = Registry OpenNTF.org =
  • 18. Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com HCL Domino Docker Image Platforms • Redhat Universal Base Image (UBI) • Build & run-time support on Docker 18.09+ Linux/MAC 12 Provides Images : Base image for: • Domino 11.0.1 https://hclsoftware.flexnetoperations.com/flexnet/operationsportal/startPage.do • Official HCL Image • Just download from Flexnet and import to your environment = Ready to run
  • 19. Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com Domino Docker on Github Platforms • CentOS 7 / 8 • Redhat Universal Base Image (UBI) • Build & run-time support on Docker 18.09+ Linux/MAC • Podman 1.5.0+ • openSUSE Leap • Run-time support for Kubernetes & Openshift • Tested with QNAP, Synology 13 Provides Images : Base image for: • Domino 9.0.1 (with any FP) • Domino 10.0.1 (with any FP) • Domino 11.0.1 Addon image for • Traveler 9, 10, and 11 • Domino Volt https://github.com/ibm/domino-docker • Must built your own image (automated, using a script) from Domino Linux installer • Includes automated Domino Configuration
  • 20. Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com … Platform9 Rancher Where to start - Decision Flow for a platform 14 Docker Server Kubernetes OpenShift $ Entry Test Docker Desktop Level 1 Test & Development Level 2 Prod. Hosting Level 3 Scale
  • 21. Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com Level 1 - Docker in MacOSX 15 • Uses Mac integrated virtualization • Also runs a Linux VM with Container run-time • Desktop Application • Kubernetes single node-cluster • Docker Compose • Start here: https://docs.docker.com/docker-for-mac/
  • 22. Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com Level 1 – Docker on Windows 16 • Leverages Hyper-V (Linux container with Container run-time) • Command Line is Windows (only batch and power-shell scripting) • Desktop application • Kubernetes single node-cluster • Docker compose • Hyper-V and VMware did not work on the same time • Fix from VMware and Microsoft You need VMware 15.5 Workstation/Player • Start here: https://docs.docker.com/docker-for-windows/ Windows Hyper-V Linux Docker Docker CLI
  • 23. Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com Level 1 – Docker on Windows with WSL 2 17 • Uses native WSL2 Linux containers for Container run-time • No requirement to run Hyper-V • Full integration in Ubuntu or Debian running in separate WSL container each • Desktop application • Kubernetes single node-cluster • Docker Compose • Start here: https://docs.docker.com/docker-for-windows/wsl/ • See http://blog.nashcom.de/ Windows WSL2 Linux Docker Docker CLI Ubuntu Docker CLI
  • 24. Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com Level 1 – Docker on Windows with WSL 2 18 • Uses native WSL2 Linux containers for Container run-time • No requirement to run Hyper-V • Full integration in Ubuntu or Debian running in separate WSL container each • Desktop application • Kubernetes single node-cluster • Docker Compose • Start here: https://docs.docker.com/docker-for-windows/wsl/ • See http://blog.nashcom.de/
  • 25. Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com Level 1 – Docker on Linux 19 • CentOS/RedHat, Debian, Fedora, Ubuntu (separate install instructions per platform) • Docker service controlling + Docker Client • Runs native on Linux • Okay for smaller production deployments • You can optionally install Docker Compose • No Kubernetes included • Start here: https://docs.docker.com/engine/install/ Level 1 conclusion : Win? MacOS? Linux? It’s always Linux in one way or the other Linux Docker Docker CLI
  • 26. Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com Level 2 – Docker Server 20 • System Recommendation • min. 2 CPU Cores, • 8 GB RAM, • 50 GB storage • Linux Operating System e.g. CentOS 8 or RedHat 8 • Docker CE 19.03+ • Intended for small deployments and POC type environments • Easiest to install and configure • Limited number of users • Does not support automatic scaling, limited number of ‘recorders’ • Fully supported for production Hypervisor VM Linux Docker Docker CLI
  • 27. Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com Level 3 – Kubernetes (k8s) 21 • https://kubernetes.io/ • Aka “vanilla” kubernetes • Built for enterprise deployments at scale • Contains management and orchestration • Open source & free of charge • Runs on virtualized machine or on HW • Various “flavors” and branded versions of Kubernetes exist • e.g. https://k3s.io/ a lightweight distribution for IoT
  • 28. Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com Level 3 – Rancher 22 • https://rancher.com • It’s a flavor of Kubernetes • Built for enterprise deployments at scale • Contains management and orchestration • Open source, but not free • Runs on virtualized machine or bare metal
  • 29. Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com Level 3 – OpenShift 23 https://www.openshift.com/ • It’s a flavor of Kubernetes • Built for enterprise deployments at scale • Contains management and orchestration • Strong focus on security • Commercial Product • Community version : OKD https://www.okd.io/ • Runs on virtualized machine or bare metal
  • 30. Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com Container Adoption @ YellowSphere 24 HCL • using Docker for automated product testing • Software Factory (SoFy) HCL Hosting partner: factor-y • Domino on K8s hosting services with fully automated deployment DNUG • Sametime 11.5 Premium meeting server Large Domino Customer (Not to be named) • Domino applications hosted today in house moving to K8s Business Partner • Developing a mobile client for HCL Traveler • Testing with different versions. Updating via image update
  • 31. Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com Kubernetes: All About Orchestration 25 After playing with Docker containers and seeing some value, questions typically arise: 1. Could I use containerized apps in our dev environment or even in our product? 2. Do I need to use the docker command line tool to manage the whole lifecycle of containerized apps? 3. If I want to build an app with multiple containers how do they find and talk to each other? 4. If I want to run containerized apps in places other than my machine, how do I do that? 5. How do companies that are fully bought in to containers deal with production grade concerns: scaling, resiliency, update/rollback, security, true CI/CD, logging/monitoring Kubernetes helps with these questions and more
  • 32. Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com Kubernetes Architecture: Don’t worry if this looks complicated! Shared Storage Local / SAN / NFS / AWS / …
  • 33. Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com Kubernetes for End Users 27 Most teams work with Kubernetes using a “declarative approach”: • Basically “kubectl apply” + yaml • This is how to tell Kubernetes what state you’d like the system to be in: • Kubernetes is listening for changes and will try get/keep the system in the given state. Understanding Kubernetes Objects: Pod, Service, Namespace, Volume, Deployment, Ingress, others Plenty of examples are just a web search away. Easy to think you are struggling with a problem unique to your use case, but chances are there is already a well known solution, and usually many solutions
  • 34. Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com Kubernetes Cluster Key Concepts From the Ground Up For End Users 28
  • 35. Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com Kubernetes Cluster Key Concepts From the Ground Up For End Users 29 Container (REST API)
  • 36. Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com Kubernetes Cluster Pod label: “myapp” Key Concepts From the Ground Up For End Users 30 Container (REST API) 10.0.0.1 : 8080 Pod = smallest deployable unit in kubernetes
  • 37. Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com Kubernetes Cluster Deployment Pod label: “myapp” Key Concepts From the Ground Up For End Users 31 Container (REST API) 10.0.0.1 : 8080
  • 38. Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com Kubernetes Cluster Deployment Pod label: “myapp” Key Concepts From the Ground Up For End Users 32 Container (REST API) Pod Label: “myapp” Container (REST API) 10.0.0.1 : 8080 10.0.0.2: 8080
  • 39. Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com Kubernetes Cluster Deployment Pod label: “myapp” Key Concepts From the Ground Up For End Users 33 Container (REST API) Pod Label: “myapp” Container (REST API) 10.0.0.1 : 8080 10.0.0.2: 8080 Service selector: “myapp” 10.0.0.3 : 80
  • 40. Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com Kubernetes Cluster Deployment Pod label: “myapp” Key Concepts From the Ground Up For End Users 34 Container (REST API) Pod Label: “myapp” Container (REST API) 10.0.0.1 : 8080 10.0.0.2: 8080 Service selector: “myapp” 10.0.0.3 : 80 Ingress selector: “myapp” 35.15.67.219 : 443 foo.com/api
  • 41. Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com Kubernetes Cluster Deployment Pod label: “myapp” Key Concepts From the Ground Up For End Users 35 Container (REST API) Pod Label: “myapp” Container (REST API) 10.0.0.1 : 8080 10.0.0.2: 8080 Service selector: “myapp” 10.0.0.3 : 80 Ingress selector: “myapp” 35.15.67.219 : 443 foo.com/api foo.com/home Service selector: “foo” 10.0.0.4 : 80
  • 42. Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com Image Template Container Application Node Domino Server Pod kubelet Admin4.nsf etcd Names.nsf Cldbdir.nsf CLI Domino console Controller DDM Probe Volume Domino Data Directory = = = = Kube-proxy Passthru = Container Terminology for Domino Admins Application DDM = = = = = + Registry OpenNTF.org = Service Domino Cluster = YAML file Your perfect Documentation = Namespace Domain =
  • 43. Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com Gotcha’s 38 • It’s always Linux in one form or another • It’s always Kubernetes in one flavor or another • YAML replaces PDF • The goal is not a container… …it is to have a fully managed container • Domino != microservices, but greatly benefits from k8s’ • Domino Admins vs. k8s Admins • Have a completely different mindset • Don’t speak the same language - communication requires translation/a dictionary
  • 44. Copyright © 2020 HCL Technologies Limited | www.hcltechsw.com Recommendations for Domino 39 Multiple Domino Servers • TCP Port 1352 can only be used once per IP • One IP address for each Domino server • Port mapping in Notes Client using connection documents Licensing • Production deployment of HCL Domino requires a license PVU / CEO / Express High Availability Kubernetes clusters do not replace Domino Clusters • Deploy Domino cluster nodes to different kubernetes worker nodes When to use
  • 45. If your idea does not already exist, create a new idea and format your idea like: “As a <insert role>, I would like to be able to <insert action> in order to <insert need>.” • Where we gather and prioritize your ideas • Where we want you to add, vote, comment on and share as many ideas as you like. Create as many ideas as you’d like, but remember to keep each idea, separate. Do not create idea that consist of more than one request for enhancement. https://domino.ideas.aha.io/ 1 2 3 Search the forum to see if your idea already exists. Vote for any ideas and add any additional comments that you may have related to that idea. And, please follow these three steps: Questions & Keep the Ideas Coming – Domino Ideas Portal
  • 46. $8.4 BILLION | 132,000+ IDEAPRENEURS | 44 COUNTRIES
  • 47. Hands On Domino Docker Daniel Nashed, Nash!Com #dominoforever
  • 48. About Daniel Nashed  Nash!Com – HCL Business Partner  Focus: Cross-Platform C-API, HCL Domino® Infrastructure, Administration, Integration, Performance, Security, Troubleshooting and HCL Traveler  Author: Domino on Linux®/UNIX® Start Script  Co-Author: Domino Docker Community GitHub Project
  • 50. What's going on with Docker?  Docker was innovator but now other projects took the lead  Also Kubernetes (K8s) stops supporting Docker  The brand new Docker CE 20.10 & Docker Desktop 3.0 can't keep up with other projects  Podman  Has interesting new integration “Podman Play” allowing to bridge configurations for K8s YML configurations  Can be used as a almost 1:1 replacement for Docker functionality  Podman is fully supported by our GitHub project – the command line is very similar  But: Whatever software we use – it is all about IMAGES and CONTAINERS
  • 51. Install Docker Community Edition 20.10  Works better on CentOS 8 – Installs without hacks, Firewall fixed & easier to install  New Docker installation script – works automatically  curl -fsSL https://get.docker.com -o get-docker.sh  chmod 755 get-docker.sh  ./get-docker.sh  Enable (auto start) and start the Docker Service  systemctl enable --now docker  Check configuration  docker version  Installing Podman would be a single command: yum install -y podman
  • 53. 1. Get the Domino Docker Scripts from GitHub  Install git software  yum install -y git  Create a new directory for your git projects and switch to it  mkdir -p /local/github  cd /local/github  Clone ("download") the repository locally  git clone https://github.com/IBM/domino-docker  cd domino-docker  git checkout develop
  • 54. 2. Download or map Domino Software  The Open Source Docker Script requires software either locally or download location  We can't provide software or a complete image – But we can make it easy for you  Two different modes  Local Directory  Standard Directory “software” → hosted from a temporary NGINX container  Example: /local/github/domino-docker/software  Download from a remote host  Edit DOWNLOAD_FROM in the build.sh  Example: DOWNLOAD_FROM=http://centos-mirror.nashcom.loc/software
  • 55. 3. Docker Image “build” Process  A central script “build.sh” is used to invoke the build  Currently implemented images  ./build.sh domino  ./build.sh traveler (builds an image based on the “domino” image)  ./build.sh volt (builds an image based on the “domino” image)  By default the latest version is used  You could choose a specific version by explicitly specifying the version and options..  ./build.sh domino 12.0.0beta1 dockerfile_centos8 latest12 -nolinuxupd  Software.txt contains up to date download names and SHA256 hashes
  • 56. Build & Run HCL Volt  HCL Volt is based on Domino  So let's build an add-on image on top of an existing Domino V12 Beta 1 image...  CentOS → Domino → Volt  Demo: ./build.sh volt dockerfile_domino12 -nolinuxupd  It's more than just a standard image... We added automatic Domino & Volt configuration and basic certificate generation  Volt databases, HTTPS configuration, DomCfg, Session based authentication …
  • 57. 4. Run a Domino Domino Server via Docker CLI  Command-Line to create a container from an image  docker run -it -p 80:80 -p 1352:1352 --hostname=myhost --name mycontainer --cap-add=SYS_PTRACE --env-file env_domino -v notesdata:/local/notesdata domino-docker:V1101FP2_10202020prod  Details  --cap-add-SYSPTRACE → important for NSD / gdb  --env-file → passes environment variables to the container  -p → publishes external ports (internally sets firewall rules automatically!)  -v → Maps volumes to the container
  • 58. 4. Run via Docker Compose  Docker Compoes uses a YAML files to define one or multiple containers in one service  They can join the same Docker “network”  Sametime Meetings Premium is using docker-compose to bring up multiple containers as one “service”  Helm is used for K8s – Allows to scale adding more pods on demand  Many other projects use docker-compose.yml files to describe their services  Sametime 8.5 Premium uses docker-compose to define and manage all containers  In the end it's still managing the same containers we already know in a different way  See examples in the Git repository
  • 59. Brand new – Domino Container Start Script  This will replace the management script in our Domino Docker Git project  Part of Nash!Com start script, integrated into the Domino Docker project  Already included in the Domino Docker Project  Similar options you know from the Domino on Linux start script  “One stop shopping” for all your operations  Includes Podman systemd integration  Custom image build support!  Let's have a look …
  • 62. CentOS Stream – What's going on?  There is a lot of confusion  It's not new information!  An it isn't as critical as many discuss it  There is no such thing as Enterprise level free beer  You always have to pay a price or take a “risk”  But CentOS Stream will still be a stable and free enterprise Linux  It will be the version becoming the next RHEL dot release Quote from: Matthew Miller Distinguished Engineer at Red Hat / Fedora Project Leader
  • 63. Stream Bleeding edge Free & based on stable RHEL Enterprise Release Stable / Commercial Ahead of REHL becomes the next RHEL dot release Enterprise Release Stable / Commercial → Bleeding edge → → →
  • 65. Git  A tool you should know today!  Many software developers and companies use Git to manage their source code  GitHub is a platform where you find most of the software projects  We can't avoid them even they are owned by Microsoft  Most important commands for using our Git project  “git clone” – to clone a project  “git checkout develop” – to switch to the develop branch of the project  “git pull” – to update your local repo
  • 66. {JSON} – A standard you can't avoid  https://www.json.org  Most configuration files today are in JSON  It replaces XML in many cases.  If you never looked into JSON you have start now!  The most popular parser on Linux:  JQ – https://stedolan.github.io/jq/  Very powerful and included in the Linux distributions
  • 67. YAML – Another standard you can't avoid  https://yaml.org/  YAML / YML is often used in the container world to describe a configuration  For example used in docker-compose and K8s configuration  Very reduced & simplified format  What homepage says:  “YAML: YAML Ain't Markup Language”  “What It Is: YAML is a human friendly data serialization standard for all programming languages.”  Tool for Linux: https://mikefarah.gitbook.io/yq/
  • 68. XML –> JSON → YAML  Source: https://developer.ibm.com/technologies/containers/tutorials/yaml-basics-and-usage-in-kubernetes/  Great video with all you need to start: https://www.youtube.com/watch?v=1uFVr15xDGg
  • 70. Working with Docker  Important commands  docker images → lists all locally available images  docker ps → shows all running containers  docker ps -a → also shows stopped containers  docker run → creates container from image and starts it  docker start/stop → starts/stops existing containers  docker inspect → shows detailed information for a container  docker volume ls → lists existing volumes  docker volume rm → removes a volume  docker exec → executes a command inside a container
  • 71. Docker Volumes  By default all data is stored in the container  For applications with local storage requirements, this does not work well  Therefore Docker supports “volumes” which are mapped in to the container  The data from the local directory will be copied to the volume at first run when the volume is empty  The default implementation is a local disk  You can either create a volume manually, mount existing directories or let Docker create it  https://docs.docker.com/storage/volumes/
  • 72. Docker Volumes  Multiple options  You can specify an existing volume in your run statement  docker run --rm -it -v /local/data1:/local/data centos:latest bash  Or let Docker create a local volume  docker run --rm -it -v test-data1:/local/data centos:latest bash  Default location: /var/lib/docker/volumes  Or for example use a NFS mount on a NAS  docker volume create --driver local --opt type=nfs --opt o=addr=192.168.96.41,rw --opt device=:/data/docker_vol --name nfsvol  docker run --rm -it -v nfsvol:/local centos:latest bash
  • 73. Docker Volume Commands  docker volume ls  Lists all volumes  docker volume inspect my-vol  Shows details about one volume  docker volume create my-vol  Creates local volume  docker volume rm my-vol  Removes volume!  docker system df  Checks for used/free space  docker system prune  WARNING! This will remove: - all stopped containers - all networks not used by at least one container - all dangling images - all dangling build cache
  • 74. QUESTIONS? Use the GoToWebinar Questions Pane Please keep all questions related to the topics that our speakers are discussing!!! Unrelated Question => post at: http://openntf.slack.com/