Docker has been without any doubt the most hyped technology this summer. Apart from incrementally and quickly creating light-weight containers that can be hooked up together it seems to become the de-facto standard for spinning up instances locally and in the cloud. In the past there was no real compatibility between cloud providers on an OS/instance-level and also import/export features were “demanding” at best.
Linux containers for clean sandboxing do exist since much longer, e.g. Google is starting over 2 billion Linux containers every week. With Docker there is an open source based de-facto standard now that customers want to use (honestly, few people looked into lxc and kernel namespaces before Docker had it’s appearance)
Docker and WebLogic?
Oracle WebLogic Server currently does not officially support WebLogic running Docker, yet there is a github project to start with created by Bruno Borges. This project contains the Dockerfile with all necessary WLST-scripts to create a Docker container running WebLogic.
You can run Docker itself in Oracle Enterprise Linux like in most other Linux distributions such as CentOS, Ubuntu etc. Docker containers always run Linux; e.g. you could have WebLogic running on Ubuntu in a Docker container which is running on CentOS.
Docker Hub Registry
The Docker hub registry is best known as a public registry for Docker images to start with but it can be used to store private images as well.
The Docker Registry contains base Docker images for Java, Ubuntu etc., yet there are no official images from Oracle at the moment. Let’s hope that Oracle will not repeat the rather sad story of poor support for Oracle product AMIs for Amazon Cloud.
Public Clouds can either deploy Docker containers directly from github by creating a container on the fly based on a Dockerfile on github, or by accessing an Docker image stored in the Docker registry. I will demonstrate below how to deploy WebLogic as Docker container straight from the Docker registry.
Clouds: Amazon, Google, …
Amazon Beanstalk, same as the Google Cloud, support Docker containers as well! So you can dockerize your application (including WebLogic) and run the same Docker image on the cloud. To the best of my knowledge there is currently no information available if Oracle has plans to support Docker in the Oracle cloud.
HowTo Run Your WebLogic in a Docker Container on Amazon Beanstalk
The following web cast gives a brief overview of the steps involved. It’s not intended as a A-Z tutorial, rather a quick recording to illustrate the point saving you from dozens of boring screen shots. I am using CentOS 7 to run Docker and create the local Docker container.
The following steps are shown:
- Create a running Docker container with WebLogic
- Create a new image based on the container
- Upload the image to Docker hub
- Create the Amazon Beanstalk JSON file for running a Docker container
- Create an AWS Beanstalk environment that runs the image from Docker hub
- To prove that 1. to 5. are working run a demo app in the cloud
If you want to know more, I recommend to get a good book about Clouds, and WebLogic, read Bruno Borges blog entry, the Docker documentation, and the AWS Beanstalk documentation.
Oracle supports the licensing of certain AWS/EC2 instances, also different versions of Oracle Database are available at the Amazon cloud, so ask your Oracle sales rep about the licensing with Docker and Beanstalk.
Enjoy!
Update
I just learned that this posting with the web cast made into the Docker Weekly. Cool, thanks!
Update 2
Soon there will be Microsoft in the boat as well. So Amazon, Google and Microsoft amongst others will support Docker containers. I am curious to see what this will mean for Oracle’s own cloud offering.
Hi,
The video is good, but seems to blackout between 5’48” and 6’30” -ish. Not sure if it was just my browser hiccupping ?
Thanks,
Matt C.
Matt,
thanks for the comment!
not sure what went wrong – I re-exported the video to YouTube which seemed to fix it.
best,
Frank
Well, that’s what I had in mind with the sentence “Let’s hope that Oracle will not repeat the rather sad story …. ” in the article above.
https://blog.docker.com/2014/12/docker-announces-docker-hub-enterprise/
Hi,
There are two issues with your post: first, cosmetic: it’s Oracle Linux. We removed the word Enterprise from the product name over four years ago.
Second, we have published official Oracle Linux images to the Docker Hub Registry: https://registry.hub.docker.com/_/oraclelinux/
Oracle Linux is the first commercially-supported, enterprise distribution to have freely available and supported Docker images available.
Thanks!
Hi Avi,
thanks for your feedback! Cosmetics are important as they make world more beautiful – good to have shorter product names. Also thanks for pointing out that there is an OL docker image now, that is good news indeed.
cheers,
Frank
Hi there Dr. Frank Munz!
Hope you’re doing well.
In an hypothetical situation like a crashed dockerized weblogic instance running in a private cloud of an organization would be supported by Oracle? I mean, they would answer a service request opened in the Oracle Support?
Best regards,
Diego.
Hi Diego,
in the posting it says that WebLogic under Docker is not officially supported.
To the best of my knowledge this hasn’t changed yet.
All I can tell you is that Oracle is aware that customers are very interested in this!
I was talking about it at OOW 2014 🙂
thanks for your question!
kind regards,
Frank
P.S. My personal opinion: If Oracle might accept Docker one day as a supported “platform” for WebLogic IMHO support would deal with WebLogic issues for such an an environment (instead of asking you to replicate your scenario on a supported environment). I wouldn’t expect they’d fix Docker issues though.
Would you mind sharing the Dockerrun.aws.json file?
Rtinoco,
I guess my starting version looked like below. Make sure to understand what has changed on AWS in between and use the latest.
{
"AWSEBDockerrunVersion": "1",
"Image": {
"Name": "testfm/wls1",
"Update": "true"
},
"Logging": "/u01/oracle/wls12130/user_projects/domains/base_domain/servers/AdminServer/logs",
"Ports": [
{
"ContainerPort": "7001"
}
]
}