Hands-on Labs
Reading takes you so far; the labs make it stick. This module walks you through building real services on a free, local DataPower Gateway.
Get a gateway: the Developer edition
The easiest learning environment is the IBM DataPower Gateway for Developers container image. It's the full firmware, free for non-production use, and runs locally under Docker or Podman.
The developer image is licensed for development and testing, not production traffic. Perfect for this course.
Pull and run
The exact image coordinates change over time — check IBM's current published image — but the shape is:
# Pull the developer image (replace tag with the current one)
docker pull icr.io/integration/datapower/datapower-limited:latest
# Run it, exposing the WebGUI (9090), CLI (2200), and a service port (8443)
docker run -it \
-e DATAPOWER_ACCEPT_LICENSE=true \
-e DATAPOWER_INTERACTIVE=true \
-p 9090:9090 \
-p 2200:22 \
-p 8443:8443 \
--name datapower \
icr.io/integration/datapower/datapower-limited:latest
On first boot, accept the license and (when prompted at the interactive console) enable the web management interface so you can reach the WebGUI.
Log in to the WebGUI
- Browse to
https://localhost:9090(accept the self-signed cert warning). - Log in with the default admin credentials you set at first boot.
- You'll land in the default domain.
If the WebGUI loads and you can see the Control Panel, you're ready. If not,
check the container logs (docker logs datapower) and that web-mgmt was enabled.
Create your lab domain
Don't build in default. Create an application domain for the labs:
- In the WebGUI, switch to Administration → Configuration → Application Domain.
- Create a domain named
laband apply. - Switch into the
labdomain (top-right domain selector). All labs assume you're working insidelab.
Lab roadmap
| Lab | You'll build |
|---|---|
| Build an MPGW | An HTTP gateway with a front-side handler and a static backend |
| Add a TLS Profile | Terminate HTTPS on the gateway with a TLS server profile |
| Write an XSLT Transform | Reshape a message with a stylesheet (outline) |
| Configure AAA | Authenticate and authorise requests (outline) |
After each lab, Save Configuration (Module 2) so a container restart doesn't wipe your progress.