SlideShare a Scribd company logo
AD-1172 Shipping Domino
How to Put Domino in a Container and Live Happy
Book of Recipes
Matteo Bisi, Daniele Vistalli @ Factor-y
About us
Matteo Bisi
• IBM Champions for Social Business (2014,2015,2016)
• IBM Certified Advanced System Administrator - Notes and Domino 9.0
• System engineer @ Factor-y S.r.l.
Daniele Vistalli
• CEO & CTO @ Factor-y S.r.l.
• R&D nerd with business focus
Docker + Domino
What and why
Docker and containers in 1 slide
Docker is a way to “package” your software in an image:
• File system
• System security (user/groups) & settings
• TCP Network (ports that needs to be reachable)
• Image inheritance is possible (incremental specialization)
Docker is a way to “ship & run” your software to other
systems:
• Start an “image” to get a container where your software runs
• Manage containers (start/stop/control etc)
• The container runs regardless of the actual (underlying) system
(VM, bare metal, etc)
Why package domino ? (developers edition)
Domino could be packaged to make developers happy
• Think about automated testing:
 Start a clean server every time and test your software
 Create “acceptance” environments in seconds
 Keep an archive of images for every software release to perfrom
back-version debugging/testing (start a clean server in minutes)
• Think about saving time:
 Use a standard image your admin has built, just fire it up
Why package domino ? (admin edition)
• Linux based servers ?
• Create images to support developers (standard deployment)
• Create images to ship & deploy your product in cloud with high
density
 Pack the server, the software (NSFs and plugins) and deploy
 Manage upgrades by just upgrading the image and attaching the
data volume (see volumes)
• Consolidate multiple servers on a single powerful machine but
maintain complete isolation
Domino
built to be packaged
Program / data separation
Domino is born with clean separation, perfect for packaging
• Binary folder contains all server components
• NOTESDATA contains the “server instance”
 We all know that you can often move a server by copy/paste
NOTESDATA + reinstall domino. THIS IS UNIQUE
• NOTES.INI = core settings in a controllable and manageable
place (no arcane binary or registry location)
File systems
A Domino server filesystem is well-defined and can be managed
• NotesData : all your databases and config files
• DAOS : if DAOS is enabled.. Attachments go here
• Transaction Logs : If transaction logs enabled, you find them in a well defined place
• FTIndexes : Full-text indexes can be placed in a specific location
• View rebuild : Temporary rebuild data can also be placed “somewhere”
This is perfect, Docker has “VOLUMES” a way to define filesystem attachments that “persist” even
if a container is stopped/destroyed and rebuilt.
VOLUMES allow to “mount” persistent filesystems to attach points defined in the IMAGE
description
Network services
• Domino is a network server
• Each service uses TCP ports
• To expose a port from a container to the “external” world you
need to declare those
• Plan for your needs, identify network ports and EXPOSE
EXPOSE 80 443 1352 (and eventually others)
Install and configuration automation
What about Domino setup and configuration ?
Once again we’re lucky
1. Domino server silent install
RUN /bin/bash -c "/tmp/sw-repo/install -silent -options /tmp/sw-
repo/unix_response.dat"
2. Recorded server configuration
/opt/ibm/domino/bin/server -silent /local/notesdata/playground.pds
/local/notesdata/playground.txt
Lab: Creating a domino
image for developers
What we need (installers, dockerfile)
1. Create a “build” directory where we place our “work files”
2. Put domino server installers
3. Put FP installers for domino server
4. Create a “dockerfile” aka “Image creation script”
5. Use docker CLI to create the image and build it
DockerFile anatomy
A “DockerFile” is a text file with docker commands, it
• Declares the “base image” to inherit from
• Copies files to the image filesystem
• Executes commands in the image to setup things
• Declares “VOLUME” mappings
• Declares ports to “EXPOSE”d.
Setup the environment (DockerFile 1/3)
# Select the base image to inherit from
FROM ubuntu:14.04
# Execute unix commands: add user, group and set limits
RUN adduser notes
RUN usermod -aG notes notes
RUN usermod -d /local/notesdata notes
RUN sed -i '$d' /etc/security/limits.conf
RUN echo 'notes soft nofile 60000' >> /etc/security/limits.conf
RUN echo 'notes hard nofile 80000' >> /etc/security/limits.conf
RUN echo '# End of file' >> /etc/security/limits.conf
Install domino (DockerFile 2/3)
# Copy our installers from our build directory to the image file
system
COPY sw-repo/domino901/ /tmp/sw-repo/
# Silent install domino/
RUN /bin/bash -c "/tmp/sw-repo/install -silent -options /tmp/sw-
repo/unix_response.dat"
Configure domino and cleanup (DockerFile 3/3)
# Prepare for configuration and run scripted configuration
ENV NUI_NOTESDIR /opt/ibm/domino/
RUN cp /tmp/sw-repo/*.id /local/notesdata/
RUN cp /tmp/sw-repo/playground.* /local/notesdata/
RUN su notes -c "cd /local/notesdata && /opt/ibm/domino/bin/server -silent /local/notesdata/playground.pds
/local/notesdata/playground.txt"
# Declare TCP ports to be exposed
EXPOSE 80 443 1352
# Clean up "tmp"
RUN rm -rf /tmp/*
--------------------------------------------
Now we build the image from the Unix Prompt:
Docker> docker build –f <dockerfilename>
Live Demo
It’s true, not a dream
Thank you
Acknowledgements and Disclaimers
Availability. References in this presentation to IBM products, programs, or services do not imply that they will be available in all countries in which IBM
operates.
The workshops, sessions and materials have been prepared by IBM or the session speakers and reflect their own views. They are provided for informational
purposes only, and are neither intended to, nor shall have the effect of being, legal or other guidance or advice to any participant. While efforts were made to
verify the completeness and accuracy of the information contained in this presentation, it is provided AS-IS without warranty of any kind, express or implied.
IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, this presentation or any other materials. Nothing contained in
this presentation is intended to, nor shall have the effect of, creating any warranties or representations from IBM or its suppliers or licensors, or altering the
terms and conditions of the applicable license agreement governing the use of IBM software.
All customer examples described are presented as illustrations of how those customers have used IBM products and the results they may have achieved.
Actual environmental costs and performance characteristics may vary by customer. Nothing contained in these materials is intended to, nor shall have the
effect of, stating or implying that any activities undertaken by you will result in any specific sales, revenue growth or other results.
Acknowledgements and Disclaimers cont.
© Copyright IBM Corporation 2015. All rights reserved.
• U.S. Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
• IBM, the IBM logo, ibm.com, and IBM Domino are trademarks or registered trademarks of International Business Machines Corporation in the United States,
other countries, or both. If these and other IBM trademarked terms are marked on their first occurrence in this information with a trademark symbol (® or ™),
these symbols indicate U.S. registered or common law trademarks owned by IBM at the time this information was published. Such trademarks may also be
registered or common law trademarks in other countries. A current list of IBM trademarks is available on the Web at “Copyright and trademark information” at
www.ibm.com/legal/copytrade.shtml
Docker is a trademark of Docker, Inc.
Other company, product, or service names may be trademarks or service marks of others.

More Related Content

PDF
Connect2016 - 1172 Shipping domino
PDF
Str02. IBM Application Modernization with panagenda ApplicationInsights
PDF
Adm02. IBM Connections Adminblast
PDF
A Technical Guide To Deploying Single Sign On
PPT
Sunny Days, (Smart)Cloud-y Users
ODP
How to Create a Perfect Profile: A Hitchiker's Guide to A Smarter Workforce
PDF
DNUG HCL Domino 11 First Look
PDF
IAmLUG presentation: Domino Admin Best Practices - Hunting the Gremlins
Connect2016 - 1172 Shipping domino
Str02. IBM Application Modernization with panagenda ApplicationInsights
Adm02. IBM Connections Adminblast
A Technical Guide To Deploying Single Sign On
Sunny Days, (Smart)Cloud-y Users
How to Create a Perfect Profile: A Hitchiker's Guide to A Smarter Workforce
DNUG HCL Domino 11 First Look
IAmLUG presentation: Domino Admin Best Practices - Hunting the Gremlins

What's hot (20)

PPT
Show100: Making IBM Notes Traveler Highly Available
PDF
Domino in the Back, Party In The Front
PPTX
HCL Domino V12 Key Security Features Overview
PPT
IBM WebSphere Application Server traditional and Docker
PPT
IBM WebSphere Liberty and Docker Deep Dive
PDF
What's New in Notes, Sametime and Verse On-Premises
PDF
Open Mic: IBM Sametime Web Client & Meeting Server - An Introduction to new f...
PDF
Spnego configuration
PPTX
WebSphere Application Server Liberty Profile and Docker
PPTX
Domino V10 and How to Get There - IBM Think 2019
PDF
Setting Up a Hybrid Domino Environment to Ease your Way to the Cloud
PDF
Becoming A Connections Administrator
PDF
Features of SmartCloud Notes in Hosted and Hybrid Environments
PDF
Bewährte Praktiken für HCL Notes/Domino-Sicherheit. Teil 2: Der Domino-Server
PDF
Dominopoint 2012 - IBM Lotus Traveler High Availability in a nutshell
PPTX
WebSphere Application Server Liberty Profile and Docker
PDF
Unboxing HCL Notes/Domino v12!
PDF
HCL Domino and Notes v12 are coming!
PPTX
Cloud Messaging with NServiceBus and Microsoft Azure
PDF
Self Healing Capabilities of Domino 10
Show100: Making IBM Notes Traveler Highly Available
Domino in the Back, Party In The Front
HCL Domino V12 Key Security Features Overview
IBM WebSphere Application Server traditional and Docker
IBM WebSphere Liberty and Docker Deep Dive
What's New in Notes, Sametime and Verse On-Premises
Open Mic: IBM Sametime Web Client & Meeting Server - An Introduction to new f...
Spnego configuration
WebSphere Application Server Liberty Profile and Docker
Domino V10 and How to Get There - IBM Think 2019
Setting Up a Hybrid Domino Environment to Ease your Way to the Cloud
Becoming A Connections Administrator
Features of SmartCloud Notes in Hosted and Hybrid Environments
Bewährte Praktiken für HCL Notes/Domino-Sicherheit. Teil 2: Der Domino-Server
Dominopoint 2012 - IBM Lotus Traveler High Availability in a nutshell
WebSphere Application Server Liberty Profile and Docker
Unboxing HCL Notes/Domino v12!
HCL Domino and Notes v12 are coming!
Cloud Messaging with NServiceBus and Microsoft Azure
Self Healing Capabilities of Domino 10
Ad

Viewers also liked (7)

PDF
amazon-cognito-auth-in-minutes
PPTX
Amazon Cognito
PDF
Slide kinh nghiệm vận hành Cloud trên Amazon - Huỳnh Kỳ Anh
PDF
A guide on Aws Security Token Service
ODP
BDD with Cucumber
ODP
Akka Finite State Machine
PDF
Everything-as-code. Polyglotte Software-Entwicklung in der Praxis.
amazon-cognito-auth-in-minutes
Amazon Cognito
Slide kinh nghiệm vận hành Cloud trên Amazon - Huỳnh Kỳ Anh
A guide on Aws Security Token Service
BDD with Cucumber
Akka Finite State Machine
Everything-as-code. Polyglotte Software-Entwicklung in der Praxis.
Ad

Similar to Connect2016 Shipping Domino (20)

PPTX
Domino on docker version 2
PPTX
Domino on docker version 1
PPTX
.docker : How to deploy Digital Experience in a container, drinking a cup of ...
PPTX
docker : how to deploy Digital Experience in a container drinking a cup of co...
PPTX
.docker : how to deploy Digital Experience in a container drinking a cup of c...
PDF
InterConnect 2015: 3962 Docking DevOps
PDF
An introduction to configuring Domino for Docker
PDF
An Introduction to Configuring Domino for Docker
PDF
Docking, loading, running domino on docker v12
PDF
Dockercon eu tour 2015 - Devoxx Casablanca
PDF
AD11 Starting with Domino on Docker.pdf
PPTX
Step by step installation domino on docker
PDF
How to Adopt Docker Within Your Enterprise Using IBM UrbanCode Deploy (Interc...
PPTX
EMC World 2016 - code.09 Introduction to the Docker Platform
PPTX
IBM Container Service Overview
PDF
PPTX
Docking DevOps 2015-03-01
PPTX
Docking DevOps 2015-03-01
PDF
OPEN SOURCE TECHNOLOGY: Docker Containers on IBM Bluemix
ODP
Docker, how to use it. Organize a meeting with IBM products
Domino on docker version 2
Domino on docker version 1
.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 co...
.docker : how to deploy Digital Experience in a container drinking a cup of c...
InterConnect 2015: 3962 Docking DevOps
An introduction to configuring Domino for Docker
An Introduction to Configuring Domino for Docker
Docking, loading, running domino on docker v12
Dockercon eu tour 2015 - Devoxx Casablanca
AD11 Starting with Domino on Docker.pdf
Step by step installation domino on docker
How to Adopt Docker Within Your Enterprise Using IBM UrbanCode Deploy (Interc...
EMC World 2016 - code.09 Introduction to the Docker Platform
IBM Container Service Overview
Docking DevOps 2015-03-01
Docking DevOps 2015-03-01
OPEN SOURCE TECHNOLOGY: Docker Containers on IBM Bluemix
Docker, how to use it. Organize a meeting with IBM products

Recently uploaded (20)

PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
NewMind AI Monthly Chronicles - July 2025
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Encapsulation theory and applications.pdf
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Modernizing your data center with Dell and AMD
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPTX
A Presentation on Artificial Intelligence
PDF
KodekX | Application Modernization Development
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
MYSQL Presentation for SQL database connectivity
Encapsulation_ Review paper, used for researhc scholars
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
NewMind AI Monthly Chronicles - July 2025
The AUB Centre for AI in Media Proposal.docx
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Encapsulation theory and applications.pdf
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Understanding_Digital_Forensics_Presentation.pptx
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Modernizing your data center with Dell and AMD
Review of recent advances in non-invasive hemoglobin estimation
Network Security Unit 5.pdf for BCA BBA.
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
A Presentation on Artificial Intelligence
KodekX | Application Modernization Development
Dropbox Q2 2025 Financial Results & Investor Presentation

Connect2016 Shipping Domino

  • 1. AD-1172 Shipping Domino How to Put Domino in a Container and Live Happy Book of Recipes Matteo Bisi, Daniele Vistalli @ Factor-y
  • 2. About us Matteo Bisi • IBM Champions for Social Business (2014,2015,2016) • IBM Certified Advanced System Administrator - Notes and Domino 9.0 • System engineer @ Factor-y S.r.l. Daniele Vistalli • CEO & CTO @ Factor-y S.r.l. • R&D nerd with business focus
  • 4. Docker and containers in 1 slide Docker is a way to “package” your software in an image: • File system • System security (user/groups) & settings • TCP Network (ports that needs to be reachable) • Image inheritance is possible (incremental specialization) Docker is a way to “ship & run” your software to other systems: • Start an “image” to get a container where your software runs • Manage containers (start/stop/control etc) • The container runs regardless of the actual (underlying) system (VM, bare metal, etc)
  • 5. Why package domino ? (developers edition) Domino could be packaged to make developers happy • Think about automated testing:  Start a clean server every time and test your software  Create “acceptance” environments in seconds  Keep an archive of images for every software release to perfrom back-version debugging/testing (start a clean server in minutes) • Think about saving time:  Use a standard image your admin has built, just fire it up
  • 6. Why package domino ? (admin edition) • Linux based servers ? • Create images to support developers (standard deployment) • Create images to ship & deploy your product in cloud with high density  Pack the server, the software (NSFs and plugins) and deploy  Manage upgrades by just upgrading the image and attaching the data volume (see volumes) • Consolidate multiple servers on a single powerful machine but maintain complete isolation
  • 8. Program / data separation Domino is born with clean separation, perfect for packaging • Binary folder contains all server components • NOTESDATA contains the “server instance”  We all know that you can often move a server by copy/paste NOTESDATA + reinstall domino. THIS IS UNIQUE • NOTES.INI = core settings in a controllable and manageable place (no arcane binary or registry location)
  • 9. File systems A Domino server filesystem is well-defined and can be managed • NotesData : all your databases and config files • DAOS : if DAOS is enabled.. Attachments go here • Transaction Logs : If transaction logs enabled, you find them in a well defined place • FTIndexes : Full-text indexes can be placed in a specific location • View rebuild : Temporary rebuild data can also be placed “somewhere” This is perfect, Docker has “VOLUMES” a way to define filesystem attachments that “persist” even if a container is stopped/destroyed and rebuilt. VOLUMES allow to “mount” persistent filesystems to attach points defined in the IMAGE description
  • 10. Network services • Domino is a network server • Each service uses TCP ports • To expose a port from a container to the “external” world you need to declare those • Plan for your needs, identify network ports and EXPOSE EXPOSE 80 443 1352 (and eventually others)
  • 11. Install and configuration automation What about Domino setup and configuration ? Once again we’re lucky 1. Domino server silent install RUN /bin/bash -c "/tmp/sw-repo/install -silent -options /tmp/sw- repo/unix_response.dat" 2. Recorded server configuration /opt/ibm/domino/bin/server -silent /local/notesdata/playground.pds /local/notesdata/playground.txt
  • 12. Lab: Creating a domino image for developers
  • 13. What we need (installers, dockerfile) 1. Create a “build” directory where we place our “work files” 2. Put domino server installers 3. Put FP installers for domino server 4. Create a “dockerfile” aka “Image creation script” 5. Use docker CLI to create the image and build it
  • 14. DockerFile anatomy A “DockerFile” is a text file with docker commands, it • Declares the “base image” to inherit from • Copies files to the image filesystem • Executes commands in the image to setup things • Declares “VOLUME” mappings • Declares ports to “EXPOSE”d.
  • 15. Setup the environment (DockerFile 1/3) # Select the base image to inherit from FROM ubuntu:14.04 # Execute unix commands: add user, group and set limits RUN adduser notes RUN usermod -aG notes notes RUN usermod -d /local/notesdata notes RUN sed -i '$d' /etc/security/limits.conf RUN echo 'notes soft nofile 60000' >> /etc/security/limits.conf RUN echo 'notes hard nofile 80000' >> /etc/security/limits.conf RUN echo '# End of file' >> /etc/security/limits.conf
  • 16. Install domino (DockerFile 2/3) # Copy our installers from our build directory to the image file system COPY sw-repo/domino901/ /tmp/sw-repo/ # Silent install domino/ RUN /bin/bash -c "/tmp/sw-repo/install -silent -options /tmp/sw- repo/unix_response.dat"
  • 17. Configure domino and cleanup (DockerFile 3/3) # Prepare for configuration and run scripted configuration ENV NUI_NOTESDIR /opt/ibm/domino/ RUN cp /tmp/sw-repo/*.id /local/notesdata/ RUN cp /tmp/sw-repo/playground.* /local/notesdata/ RUN su notes -c "cd /local/notesdata && /opt/ibm/domino/bin/server -silent /local/notesdata/playground.pds /local/notesdata/playground.txt" # Declare TCP ports to be exposed EXPOSE 80 443 1352 # Clean up "tmp" RUN rm -rf /tmp/* -------------------------------------------- Now we build the image from the Unix Prompt: Docker> docker build –f <dockerfilename>
  • 18. Live Demo It’s true, not a dream
  • 20. Acknowledgements and Disclaimers Availability. References in this presentation to IBM products, programs, or services do not imply that they will be available in all countries in which IBM operates. The workshops, sessions and materials have been prepared by IBM or the session speakers and reflect their own views. They are provided for informational purposes only, and are neither intended to, nor shall have the effect of being, legal or other guidance or advice to any participant. While efforts were made to verify the completeness and accuracy of the information contained in this presentation, it is provided AS-IS without warranty of any kind, express or implied. IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, this presentation or any other materials. Nothing contained in this presentation is intended to, nor shall have the effect of, creating any warranties or representations from IBM or its suppliers or licensors, or altering the terms and conditions of the applicable license agreement governing the use of IBM software. All customer examples described are presented as illustrations of how those customers have used IBM products and the results they may have achieved. Actual environmental costs and performance characteristics may vary by customer. Nothing contained in these materials is intended to, nor shall have the effect of, stating or implying that any activities undertaken by you will result in any specific sales, revenue growth or other results.
  • 21. Acknowledgements and Disclaimers cont. © Copyright IBM Corporation 2015. All rights reserved. • U.S. Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. • IBM, the IBM logo, ibm.com, and IBM Domino are trademarks or registered trademarks of International Business Machines Corporation in the United States, other countries, or both. If these and other IBM trademarked terms are marked on their first occurrence in this information with a trademark symbol (® or ™), these symbols indicate U.S. registered or common law trademarks owned by IBM at the time this information was published. Such trademarks may also be registered or common law trademarks in other countries. A current list of IBM trademarks is available on the Web at “Copyright and trademark information” at www.ibm.com/legal/copytrade.shtml Docker is a trademark of Docker, Inc. Other company, product, or service names may be trademarks or service marks of others.