Installing WebSphere Application Server on Docker: A Quick Tutorial

Table of contents
- π Overview
- π Prerequisites
- π§± Pull Oracle Linux 9 Base Image
- π Container Creation
- π§ Disable SSL Verification and Install Additional Packages
- π¦ Install Required Packages
- π Mounted Software Directory from Host
- π₯Install IBM Installation Manager (IIM)
- π Install WebSphere Application Server (WAS)
- ποΈ Create a WebSphere Profile After Installation
- π Start the Server and Configure Ports After Profile Creation

π Overview
This guide walks through the steps to:
Pull an Oracle Linux 8.10 Docker image
Create and run a container with required ports
Install necessary packages for WebSphere on RHEL 8-compatible systems
Install IBM Installation Manager (IIM)
Install WebSphere Application Server (WAS) using response files
π Prerequisites
Docker installed on host machine
Access to IBM WebSphere and IIM installation binaries
Response files for silent installation of IIM and WAS
Internet access for package installation
π§± Pull Oracle Linux 9 Base Image
docker pull oraclelinux:9
9: Pulling from library/oraclelinux
b2ba127a66c2: Pull complete
Digest: sha256:9b94175f751ae45517a7f8bcb1e78a466e0064dd0c7db1fed2a15810f9871311
Status: Downloaded newer image for oraclelinux:9
docker.io/library/oraclelinux:9
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
oraclelinux 9 8a8d288339e3 5 days ago 239MB
π Container Creation
Run the following command to start a container and expose the necessary ports:
docker run -dt --name was9-container \
-p 9060:9060 \ # Admin Console (HTTP)
-p 9043:9043 \ # Admin Console (HTTPS)
-p 9080:9080 \ # Application HTTP
-p 9443:9443 \ # Application HTTPS
-v "C:\Users\DBENITEZA\Documents\software:/opt/software"
-v "C:\Users\DBENITEZA\Documents\github\ansible_was:/workdir"
oraclelinux:9
Hereβs the one-line Docker command:
docker run -dt --name was9-container -p 9060:9060 -p 9043:9043 -p 9080:9080 -p 9443:9443 -v "C:\Users\DBENITEZA\Documents\software:/opt/software" -v "C:\Users\DBENITEZA\Documents\github\ansible_was:/workdir" oraclelinux:9
π Port Reference
Port | Description |
9060 | Admin Console (HTTP) |
9043 | Admin Console (HTTPS) |
9080 | Application HTTP |
9443 | Application HTTPS |
These are the default ports used by WAS 9. You can customize them during profile creation or via configuration files.
π§ Disable SSL Verification and Install Additional Packages
To avoid SSL certificate issues when installing packages like oracle-epel-release-el8
, disable SSL verification in the YUM configuration:
# Disable SSL verification to prevent certificate errors
echo "sslverify=false" >> /etc/yum.conf
# Install update, EPEL repository and Ansible
dnf update -y
dnf -y install oracle-epel-release-el9
dnf -y install ansible
dnf -y install tree
dnf install -y unzip
sslverify
, you may encounter the following error: SSL certificate problem: unable to get local issuer certificateπ¦ Install Required Packages
Before installing WebSphere Application Server 9, you must ensure the system has the required packages and configurations. These steps are essential for both graphical and command-line installations.
Run the following command inside your container or host system to install the necessary packages:
dnf install -y gtk2 libXtst xorg-x11-fonts-Type1 psmisc libnsl chkconfig libxcrypt-compat
For full details, refer to IBMβs official guide:
π Preparing Red Hat Enterprise Linux 9 for installation
π Mounted Software Directory from Host
To simplify installation, a local directory from the host machine has been mounted into the container, providing access to all required software binaries.
bash-5.1# tree /opt/software/
/opt/software/
βββ was9
βββ iim
β βββ agent.installer.linux.gtk.x86_64_1.9.2002.20220323_1321.zip
βββ jdk
β βββ jdk-11.0.27_linux-x64_bin.tar.gz
β βββ jdk-8u202-linux-i586.tar.gz
β βββ sdk.repo.8035.java8.linux.zip
βββ was
βββ was.repo.90501.base.zip
βββ was.repo.90501.nd.zip
π₯Install IBM Installation Manager (IIM)
The response file for IBM Installation Manager (/workdir/iim_response.rsp
) is stored in a mounted directory from the host machine:
<?xml version="1.0" encoding="UTF-8"?>
<agent-input clean='true' temporary='true'>
<server>
<repository location='/tmp/iim'/>
</server>
<install>
<offering features='agent_core,agent_jre' id='com.ibm.cic.agent' version='1.9.2002.20220323_1321'/>
</install>
</agent-input>
Before running the installc
command, unzip the Installation Manager archive to a temporary directory. This avoids cluttering permanent paths and allows for clean-up after installation.
mkdir -p /tmp/iim
unzip /opt/software/was9/iim/agent.installer.linux.gtk.x86_64_1.9.2002.20220323_1321.zip -d /tmp/iim
cd /tmp/iim
mkdir -p /opt/IBM /opt/IBM/InstallationManager /opt/IBM/InstallationManagerData
./installc -acceptLicense -input /workdir/iim_response.rsp \
-installationDirectory /opt/IBM/InstallationManager \
-dataLocation /opt/IBM/InstallationManagerData \
-log /opt/IBM/iim_install_log_$(date +%Y%m%d).log
/tmp/iim
to free up space.bash-5.1# ./installc -acceptLicense -input /opt/ansible-workdir/iim_response.rsp \
> -installationDirectory /opt/IBM/InstallationManager \
> -dataLocation /opt/IBM/InstallationManagerData \
> -log /opt/IBM/iim_install_log_$(date +%Y%m%d).log
Installed com.ibm.cic.agent_1.9.2002.20220323_1321 to the /opt/IBM/InstallationManager/eclipse directory.
For full details, refer to IBMβs official guide:
π Installing Installation Manager
π Installing the product offerings by using response files
π Install WebSphere Application Server (WAS)
Software Location
The following files are available in the mounted directory /opt/software/was9
(both zip files and unarchived):
/opt/software/was9/
βββ was/
β βββ was.repo.90501.base.zip
β βββ was.repo.90501.base
βββ jdk/
β βββ sdk.repo.8035.java8.linux.zip
β βββ sdk.repo.8035.java8.linux
Recommended Installation Paths
WAS installation directory:
/opt/IBM/WebSphere/AppServer
JDK installation directory:
/opt/IBM/Java80
Modified Response File: was_response.xml
Assuming you have the WAS installer .zip
and a response file /workdir/was_response.xml
:
<?xml version='1.0' encoding='UTF-8'?>
<agent-input>
<variables>
<variable name='sharedLocation' value='/opt/IBM/IMShared'/>
</variables>
<server>
<repository location='/opt/software/was9/was/was.repo.90501.base'/>
<repository location='/opt/software/was9/jdk/sdk.repo.8035.java8.linux'/>
</server>
<profile id='IBM WebSphere Application Server V9.0' installLocation='/opt/IBM/WebSphere/AppServer'>
<data key='cic.selector.arch' value='x86_64'/>
</profile>
<install>
<!-- WebSphere Application Server -->
<offering profile='IBM WebSphere Application Server V9.0'
id='com.ibm.websphere.BASE.v90'
version='9.0.5001.20190828_0616'
features='core.feature,ejbdeploy,thinclient,embeddablecontainer'
installFixes='none'/>
<!-- Java SDK -->
<offering profile='IBM WebSphere Application Server V9.0'
id='com.ibm.java.jdk.v8'
version='8.0.5035.20190422_0948'
features='com.ibm.sdk.8'/>
</install>
<preference name='com.ibm.cic.common.core.preferences.eclipseCache' value='${sharedLocation}'/>
</agent-input>
Installation Command
/opt/IBM/InstallationManager/eclipse/tools/imcl \
input /workdir/was_response.xml \
-acceptLicense -sP \
-record /opt/ansible-workdir/auto_was_base_response.xml \
-log /opt/IBM/was_install_log_$(date +%Y%m%d).log
Example output:
bash-5.1# /opt/IBM/InstallationManager/eclipse/tools/imcl input /workdir/was_response.xml -acceptLicense -sP -record /opt/ansible-workdir/auto_was_response.xml -log /opt/IBM/was_install_log_$(date +%Y%m%d).log.log
25% 50% 75% 100%
------------------|------------------|------------------|------------------|
............................................................................
Installed com.ibm.websphere.BASE.v90_9.0.5001.20190828_0616 to the /opt/IBM/WebSphere/AppServer directory.
Installed com.ibm.java.jdk.v8_8.0.5035.20190422_0948 to the /opt/IBM/WebSphere/AppServer directory
β Verification
After installation, verify the WAS profile and start the server:
bash-5.1# /opt/IBM/InstallationManager/eclipse/tools/imcl listInstalledPackages
com.ibm.cic.agent_1.9.2002.20220323_1321
com.ibm.java.jdk.v8_8.0.5035.20190422_0948
com.ibm.websphere.BASE.v90_9.0.5001.20190828_0616
For full details, refer to IBMβs official guide:
π WebSphere Application Server installation information
π Response file examples and modification
ποΈ Create a WebSphere Profile After Installation
Once WAS Base 9.0.5.01 is installed, you need to create a standalone application server profile using the manageprofiles.sh
script.
π Recommended Profile Directory
Profile name:
AppSrv01
Profile path:
/opt/IBM/WebSphere/AppServer/profiles/AppSrv01
π οΈ Command to Create the Profile
/opt/IBM/WebSphere/AppServer/bin/manageprofiles.sh \
-create \
-profileName AppSrv01 \
-templatePath /opt/IBM/WebSphere/AppServer/profileTemplates/default \
-serverName server1 \
-enableAdminSecurity true -adminUserName wasadmin -adminPassword wasadmin123
-enableAdminSecurity true
and providing credentials with -adminUserName
and -adminPassword
.-profilePath
, WebSphere will automatically create the profile in the default profiles directory: /opt/IBM/WebSphere/AppServer/profiles/<profileName>
Example output:
bash-5.1# /opt/IBM/WebSphere/AppServer/bin/manageprofiles.sh \
> -create \
> -profileName AppSrv01 \
> -templatePath /opt/IBM/WebSphere/AppServer/profileTemplates/default \
> -serverName server1 \
> -enableAdminSecurity true -adminUserName wasadmin -adminPassword wasadmin123
INSTCONFSUCCESS: Success: Profile AppSrv01 now exists. Please consult /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/logs/AboutThisProfile.txt for more information about this profile.
β Verify the Profile
/opt/IBM/WebSphere/AppServer/bin/manageprofiles.sh -listProfiles
Example output:
bash-5.1# /opt/IBM/WebSphere/AppServer/bin/manageprofiles.sh -listProfiles
[AppSrv01]
For full details, refer to IBMβs official guide:
π Creating application server profiles
π manageprofiles command
π Start the Server and Configure Ports After Profile Creation
Once the profile is created, you can start the application server and customize its port configuration.
π οΈ Start the Server
/opt/IBM/WebSphere/AppServer/profiles/<profile-name>/bin/startServer.sh server1
Replace <profile-name>
with actual value from your environment.
server1
) within the AppSrv01
profile.Example output:
bash-5.1# /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/bin/startServer.sh server1
ADMU0116I: Tool information is being logged in file
/opt/IBM/WebSphere/AppServer/profiles/AppSrv01/logs/server1/startServer.log
ADMU0128I: Starting tool with the AppSrv01 profile
ADMU3100I: Reading configuration for server: server1
ADMU3200I: Server launched. Waiting for initialization status.
ADMU3000I: Server server1 open for e-business; process id is 2520
For full details, refer to IBMβs official guide:
π Starting an application server
π§ Configured Ports
WebSphere uses a set of default ports for HTTP, HTTPS, admin console, and more.
HTTP Transport (default):
9080
HTTPS Transport (default):
9443
Admin Console (HTTP):
9060
Admin Console (HTTPS):
9043
Access the Admin Console at:
π http://localhost:9060/ibm/console/
π https://localhost:9443/ibm/console/
Subscribe to my newsletter
Read articles from Daniel Benitez directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

Daniel Benitez
Daniel Benitez
π Hi! Iβm Dani, a passionate automation, Ansible, DevOps, and Cloud technologies enthusiast. I currently work as a Middleware Solutions Architect at Atradius, leading middleware automation and optimizing IT infrastructure. π‘ My Story: I started my career specializing in Oracle Middleware, working with technologies such as WebLogic, Oracle Database, Oracle iPlanet Web Server, and Oracle JDK. Over time, my focus shifted towards deployment automation, continuous integration, and process optimization in complex enterprise environments. π Impact & Achievements: β Direct the automation of Oracle Fusion Middleware (FMW) with Ansible, streamlining the installation, configuration, and patching processes for Oracle WebLogic, SOA Suite, and OSB. β Lead IBM WebSphere Application Server (WAS) automation with Ansible and AWX, including installation, configuration, certificates, and deployments, reducing implementation times by 70%. β Integrated Azure DevOps with AWX, eliminating manual deployment tasks and reducing human intervention to a simple approval step. β Mentor and train teams on Ansible automation, fostering continuous improvement and knowledge transfer. ππ₯ In my free time, I enjoy playing padel and basketball, always looking for new challenges and improvements, both in sports and technology. I also love building web applications with Oracle APEX, bringing ideas to life through low-code development. π₯ Letβs connect! π§ Email: dbenitez.vk@gmail.com π LinkedIn: https://www.linkedin.com/in/danielbenitezaguila π» GitHub: https://github.com/dbeniteza