Install Docker and Docker Compose
MDM uses Docker for containerization.¬† MDM images corresponding to applications and database are available in extracted and deployed formats as Docker images.¬† Docker containers can be created using these images.¬† Docker images corresponding to MDM Workbench, BPM and IBM Stewardship Center are also available.¬† Docker Compose is used when multiple containers are involved.¬†
Details on installing Docker and Docker Compose are available at https://docs.docker.com¬† We will have an overview on how to install them on RHEL here.
Issue the below commands to install Docker on RHEL
sudo yum install -y yum-utils \
sudo yum-config-manager \
sudo yum install docker-ce
sudo systemctl start docker
sudo docker run hello-world
Install Docker Compose:
Issue the below commands to install Docker Compose on RHEL.
sudo curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
Download the MDM images
Download the required MDM docker images and the yaml files from Passport Advantage.¬† Load them into the docker repository using
docker load < <FILE>
For this sample, the below images are required:
Issue the below commands to list and confirm the presence of the docker images:
Set value for COMPOSE_HTTP_TIMEOUT
There is a possibility that the HTTP requests timeout during the operation.¬† An environment variable COMPOSE_HTTP_TIMEOUT determines the timeout period and has a default value of 60.¬† It is recommended to set a higher value to this environment variabile
There are two methods using which you could set this value:
1. Set the value of the variable and invoke docker-compose up in the same command.
COMPOSE_HTTP_TIMEOUT=200 docker-compose up
2. Create a file by name .env in the directory from which you will be invoking docker-compose up and add the below line to it:
Key Details on the docker-compose.yml file
Let us have an overview on the mdm-deployed-isc.yml file which is a yaml file available in Passport Advantage.¬† This file contains details on five services, namely the MDM Database with tables and gold data in it, a WAS Base Profile that has MDM Applications including the UIs installed in it, IBM MDM Kafka, IBM BPM database, IBM BPM Process Center, IBM Process Server and IBM Stewardship Center.¬† All these containers are in deployed state and hence customization is possible using the post configuration targets from MDM.
For each service details including docker image name, port mapping between host and container, container name, host name, environment variables, networks, aliases and volumes are provided.¬†
The BPM and MDM database images have the value of flag privileged set to true as it is required to start the DB2 service.¬†
The MDM Applications container mentions that it is dependent on the container that has the MDM database.¬† It uses the hostname DB2HOST to access the MDM database container.
The MDM ISC image has IBM BPM Process Center, Process Server and IBM Stewardship Center installed in it.
The Kafka images exposes ports related to kafka and zookeeper services and is used for Statistics.
The containers become part of the network by name mdmnetwork.¬† Each container is assigned a static IP address.
Volumes are used to save the data from the container to the host.¬† It is also used to share certain key files between containers (Example: volume db2).¬† When docker-compose up is invoked, you will be able to see the volumes being created.¬† You can then check the directory /var/lib/docker/volumes in the host to check the volumes created and then go through the contents in each volume.
Accept License to use InfoSphere MDM v11.6 Feature Pack 7
The environment variable ACCEPT_LICENSE is present in the mdm_container in the docker compose yaml file.¬† The value of this variable has to be set to true to get MDM up and running.¬†¬† Edit the docker-compose.yml file and set the value of enviroment variable ACCEPT_LICENSE to “YES” before invoking docker compose
The MDM License files are available for perusal under <MDM_INSTALL_DIR>/MDMLicense folder in the MDM container.¬† You can also find it at /var/lib/docker/volumes/<FOLDER>_MDMLicense after the container starts up as it is declared as a volume.
Invoke the command docker-compose up from the directory in which the yml file is present.¬† A file with name docker-compose.yml is expected.¬† When the file name is different, use the -f option and provide the file name.
To bring up the containers listed in mdm-deployed-isc.yml we will be using
docker-compose -f mdm-deployed-isc.yml up
When this command is invoked, the network, volumes and containers are created and the commands mentioned corresponding to each image is executed.
Default Credentials for Deployed MDM images
Database Name: MDMDB
SSL File: /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/config/cells/WASHOSTCell01/nodes/WASHOSTNode01/trust.p12
SSL Password: WebAS
SSL Port: 50601
WebSphere Application Server
WAS Admin User: mdmadmin
WAS Admin Password: mdmadmin
MDM Admin User: mdmadmin
MDM Admin Password: mdmadmin
Business Process Manager (Process Server and Process Center)
Admin User: bpmadmin
Admin Password: bpmadmin
IBM Stewardship Center:
Accessing the MDM database and application containers
docker container ls
to find the list of containers running.¬† You should be able to see bpmdb_container, mdmisc_container, db2_container, mdm_container and kafka_container
Let us find out how to execute the IVT from the mdm_container.
1. Login to the container using docker utility exec
docker exec -it mdm_container /bin/bash
2. Go to directory /opt/IBM/MDM/IVT
./verify.sh db2inst1 db2inst1 mdmadmin mdmadmin true /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/config/cells/WASHOSTCell01/nodes/WASHOSTNode01/trust.p12 WebAS
4. Check the response files at /opt/IBM/MDM/IVT/testCases/xml/response and /opt/IBM/MDM/IVT/testCases/xml_virtual/response
To login to the MDM database container, you can use
docker exec -it mdmdb2v11 /bin/bash
It is recommended to switch to user db2inst1 before issuing database related commands.
Sample login to db2_container:
root@stems1:~# docker exec -it db2_container /bin/bash
root@DB2HOST:/# su – db2inst1
db2inst1@DB2HOST:~$ db2 connect to MDMDB
Database Connection Information
Database server = DB2/LINUXX8664 11.1.0
SQL authorization ID = DB2INST1
Local database alias = MDMDB
db2inst1@DB2HOST:~$ db2 “select count(*) from APPSOFTWARE”
1 record(s) selected.
The container ports 9043 and 9443 are mapped to the ports 9043 and 9443 in the host respectively.¬† Hence, you can access the user interfaces on InfoSphere MDM using the host name and port 9443 with the appropriate URLs.¬† The WebSphere Admin Console can also be accessed.
URLs to access User Interfaces
Ports corresponding to the MDM, BPM and ISC are exposed on the host through the yml file, hence it is possible to access the container using the host name. For convenience the URLs to the the User Interfaces are mentioned below.¬† Please replace <HOST_NAME> with the host name on which you have created the docker containers to access the User Interfaces.
WebSphere Application Server Admin Console: https://<HOST_NAME>:9043/ibm/console/logon.jsp
MDM UIs :
BPM and IBM Stewardship Center
BPM Process Center:
BPM Process Server:
docker-compose down helps you to stop and remove the containers created using the docker-compose.yml file.
When the name of the file is not docker-compose.yml file, the below syntax can be used:
docker-compose -f mdm-deployed-isc.yml down
Sample Docker commands
The below commands may be required during the learning process:
docker container ls
docker exec -it <CONTAINER> /bin/bash
docker container stop <CONTAINER>
docker container rm <CONTAINER>
docker volume prune
docker network prune
docker rmi <IMAGE>