Ejecutar Datapower en Docker | Arquitecto de Integración por Jose Luis Bugarin
|Para poder ejecutar datapower de una forma rápida y sencilla para que puedas explorar el producto te recomiendo instalarlo sobre un contenedor docker. Para ello, necesitas lo siguiente:
- Tener instalada una versión de docker en tu estación de trabajo (yo lo tengo sobre windows 10 y trabajando con virtual box)
- Luego necesitas descargarte la imagen de datapower ejecutando en la consola de docker: docker pull ibmcom/datapower
- Para levantar el contenedor con datapower necesitas ejecutar en la consola de docker: docker run -it -v $pwd/config:/drouter/config -v $pwd/local:/drouter/local -e DATAPOWER_ACCEPT_LICENSE=true -e DATAPOWER_INTERACTIVE=true -p 9090:9090 –name idg22 ibmcom/datapower
- Una vez que cargue la consola de datapower (conocida como idg), debes de configurar el puerto por el que vas a acceder a la consola administrativa. Primero ejecutas el comando con (de configuración) y luego web-mgmt 0 9090 9000
En el vídeo puedes conocer lo que explico de una mejor manera
Ejecutar datapower en docker | Jose Luis Bugarin | Arquitecto de integracion from Jose Luis Bugarin on Vimeo.
17 comentarios
Amigo excelente tu aporte, sin embargo, te comento que realicé los pasos en un servidor ubuntu y el punto 3 no me sirvió, me arrojaba error en la opcion name:
unknown shorthand flag: ‘n’ in -name
para poderlo ejecutar lo hice con la siguiente instrucción:
docker run -it -v $PWD/config:/drouter/config -v $PWD/local:/drouter/local -e DATAPOWER_ACCEPT_LICENSE=true -e DATAPOWER_INTERACTIVE=true -e DATAPOWER_WORKER_THREADS=4 -p 9090:9090 ibmcom/datapower
Como puedo hacer para que una vez que salga de la consola de comandos (idg) no se salga del contenedor? es decir, poder seguir trabajando tanto en la consola de mi servidor como en la consola administrativa del datapower.
De antemano, muchas gracias
Hola, yo uso docker toolbox para ejecutar los comandos y con eso puedo mantener la consola. Para acceder a la consola administrativa web, suficiente con un browser. Lo otro que puedes intentar es que te conectes con un putty a tu servidor de datapower 🙂
También arroja el siguiente error cuando se quieren salvar los cambios realizados:
Saving configuration failed – An internal routine could not create a temporary file..
domain (default): Domain configuration not saved.
Failed to save configuration to ‘config:///auto-startup.cfg’
write mem: Cannot create temp file
Cannot create a temporary file.
para que puedas guardar cambios, tienes que usar «volumens» en docker
hola amigo un consulta si yo quiero exponer dos servicio gatewayScript .
por puerto destinto por ejemplo 1000 , 1001 que debo hacer para instalar dicho puerto
configuraciones en docker para habilitar puertos y rutear puertos
Excelente aportacion Master!
He montado DP en Docker, sin embargo cuando genero mi primer WSP y e habilito la opcion del metodo GET para ver el wsdl, esta me dice que no es posible realizar conexion, sabes si tengo que habilitar algo mas?
Mi DP management es:
https://ip:9090
mi ejemplo es:
http://ip:4050/webservicesserver/numberconversion.wso?wsdl
existe algo mas a habilitar?
puede que el wsdl lo vea por otra interfaz?
Saludos
deberías descartar si existe comunicación entre tu máquina local y la máquina docker por el puerto 4050. Si no existe, debes de habilitar en la maquina docker para que pueda resolver el puerto.
Hola, actualmente se descarga la version 10 de datapower, como puedo hacer si oir ejemplo quiero especificamente la version 2108.4.1.9 o la 2018.4.1.12? Gracias
tienes que validar si existe la imagen docker para la versión especifica
Hola José;
Antes que nada, muchas gracias por compartir este conocimiento con nosotros, fue de gran ayuda.
Te escribo debido a que estoy tratando de crear un nuevo contenedor pero con un rango de puertos, al ejecutar el siguiente comando,
docker run -itd -v c:/config:/drouter/config -v c:/local:/drouter/local -e DATAPOWER_ACCEPT_LICENSE=true -e DATAPOWER_INTERACTIVE=true -p 9090:9090 -expose -p 5100-5105:5100-5105 –name dpcont ibmcom/datapower
me crea el contenedor, pero no me deja acceder al https://localhost:9090/dp/login.xml, de hecho ni siquiera me deja configurar mi contenedor (no me pide Login, ni Password) no se si estoy cometiendo algún error.
De antemano agradezco tu atención, gracias.
En vez de acceder al localhost, tienes que acceder con el IP que te da Docker. La mayoría de veces asigna 192.168.99.100
Tuve el mismo problema porque utilizo docker desktop en lugar de docker toolbox y lo solucione ejecutando el contenedor con la opción de –interactive https://docs.docker.com/engine/reference/commandline/start/ de esta forma pide el login y se puede configurar como se explica en el video, sigue funcionando sobre localhost.
Hola Nicolás… actualmente tengo Docker Desktop, pero cuando voy al browser y pongo localhost:9090/dp, no me muestra nada.
Alguno tiene alguna recomendación…
Hola. Puedes hacer un video para asignar los puertos en el docker para la exposición de los servicios en el datapower de un servicio? Mi problema es que ya creé un MPG y le puse IP y puerto pero al tratar de consumirlo desde el soapUi es como si no llegara al datapower. No muestra nada en el show probe ni en los logs.
Hola Andres, cuando ejecutas una imagen en contenedor con la instrucción -p asignas los puertos:
docker run -it \
-v $PWD/config:/drouter/config \
-v $PWD/local:/drouter/local \
-e DATAPOWER_ACCEPT_LICENSE=true \
-e DATAPOWER_INTERACTIVE=true \
-p 9090:9090 \
-p 9022:22 \
-p 5554:5554 \
-p 8000-8010:8000-8010 \
--name idg \
ibmcom/datapower
Buen día! Jose mis felicitaciones por tu aporte. Tengo la instalación del DP en un AKS pero tengo problema al tener mas de dos pods, no me permite la autenticación de la consola administrativa, se ingresan credenciales intenta cargar y las vuelve a solicitar. Si tengo un pod funciona, asumo que es un tema de persistencia del logging.