转载

如何将WebLogic服务器运行于Docker容器中

应用容器化技术是如今开发者社区讨论最热门的话题。这个技术旨在将应用作为单一的服务运行在容器中。 Docker 就是这样一种应用容器。此外容器技术可运用于流行的 微服务架构模式 中。对于Java EE开发者来说有一个好消息:WebLogic Server 12c (12.1.3) 全面支持Docker容器 。

对于新手来说,理解应用容器以及传统的虚拟化技术、应用、系统容器和Docker这些术语之间的区别和定义会有一点困难,所以这里提供一些链接希望能够起到帮助作用:

  • 系统容器与应用容器: https://blog.risingstack.com/o ... ners/
  • Docker基础:( https://docs.docker.com/userguide /)
  • Docker CLI 参考:( https://docs.docker.com/reference/commandline/cli /)

本文的目的是教你从零开始一步一步将WebLogic Server运行在Docker容器中。我们将会创建WebLogic Domain的Docker镜像并运行WebLogic Admin Server容器。我们将在以下的示例中使用它们。

由于Docker依赖于Linux的特殊功能,为了将Weblogic运行于Docker中,你可以在这里下载使用现成的 Virtual Box VM: http://www.oracle.com/technetw ... .html 。你也可以配置和使用自己的OEL VM。请注意如下提供了一个在 Oracle Linux Administration Guide 中的关于如何在Oracle Linux中安装、配置和使用Docker的一个很棒的文档:

  • For Linux Release 7( http://docs.oracle.com/cd/E526 ... p.htm l)
  • For Linux Release 6( http://docs.oracle.com/cd/E376 ... p.htm l)

1.第一步是在Linux VM中安装Docker。最简单的方式是使用Public Yum和在 /etc/yum.repos.d/public-yum-ol6.repo 文件中启用 ol6_addons repository 。使用编辑器打开它并在 public_ol6_latest 下面添加:

[ol6_addons]
name=Oracle Linux $releasever Add ons ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/addons/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=1

然后使用 Yum 命令安装Docker:

yum install docker

2.安装完成后,我们需要做一些初始化配置:

如果你使用了代理,不要忘记编辑 /etc/sysconfig/docker 并添加:

export HTTP_PROXY="proxy_URL:port"
export HTTPS_PROXY="proxy_URL:port"

启动Docker服务并配置开机启动:

service docker start

chkconfig docker on

最后检查服务是否已启动:

service docker status

docker (pid 9044) is running...

3.在使用Docker时我们需要sudo权限。每次输入 sudo 会很麻烦,所以可以将用户添加到 docker 群组:

创建docker群组:

groupadd docker

重启docker服务:

service docker restart

将需要使用Docker的用户添加到 docker 群组:

usermod -a -G docker <your_user>

4.我们将使用Oracle在 GitHub 提供的脚本来创建Weblogic Domain的Docker镜像。最简单的方式就是从上述的代码仓库中复制一份。

如果你的VM中没有安装Git可以使用如下命令安装:

yum install git

安装完成后使用 git clone 命令获取一份 docker 仓库:

$ git clone https://github.com/oracle/docker.git
Initialized empty Git repository in /home/oracle/GitRep/docker/.git/
remote: Counting objects: 799, done.
remote: Total 799 (delta 0), reused 0 (delta 0), pack-reused 799
Receiving objects: 100% (799/799), 202.80 MiB | 1.58 MiB/s, done.
Resolving deltas: 100% (314/314), done.

浏览 ../docker/WebLogic 目录并找到 buildDockerImage.sh 脚本,我们将用它来创建WebLogic的Docker镜像。使用这份脚本需要对应的开发者创建镜像的Dockerfiles和WebLogic的普通发布版本。在这里为了开发者的目的我们将使用开发者版本。请注意你需要下载WebLogic的开发者Zip发行包(wls1213_dev_update3.zip)和Linux rpm package of Java 8u51 JDK (jdk-8u51-linux-x64.rpm),然后复制到 ../docker/OracleWebLogic/dockerfiles/12.1.3 directory. 你可以在这里下载它们:

  • WebLogic Zip Distribution for Developers ( http://www.oracle.com/technetw ... x.htm l)
  • JDK 8u51 ( http://www.oracle.com/technetw ... th-JP R)

你可以在 README.md 文件中获得更多信息和参考(或者这里: https://github.com/oracle/dock ... Logic )

5.在本文中我们将使用WebLogic Server的开发者版本来创建镜像。在你完成和复制好需要的packages后你需要进入 ../docker/OracleWebLogic/ 目录并运行 buildDockerImage.sh

$ sudo sh buildDockerImage.sh -d

等待直到执行完然后使用 docker images 命令检查创建好的有了标记的镜像( oracle/weblogic:12.1.3-dev ):

$ docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
oracle/weblogic 12.1.3-dev 8ed51ee07c61 About a minute ago 2.084 GB
oraclelinux 7 8a2b759d9dd8 9 weeks ago 189.5 M

6.到目前为止我们已经创建好了WebLogic Domain镜像,但是还未配置WebLogic Domain。所以下一步我们将扩展创建好的镜像并创建WebLogic Domain镜像。

你需要进入 ../docker/OracleWebLogic/samples/12c-domain 目录执行 buildDockerImage.sh 脚本:

$ sudo sh buildDockerImage.sh -d

等待直到执行完然后使用 docker images 命令检查创建好的有了标记的镜像( samplewls:12.1.3 ):

$ docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
samplewls 12.1.3 36e1c85448ac 52 seconds ago 2.085 GB
oracle/weblogic 12.1.3-dev 8ed51ee07c61 22 minutes ago 2.084 GB
oraclelinux 7 8a2b759d9dd8 9 weeks ago 189.5 MB

7.至此我们已经创建好了基于WebLogic开发者ZIP发行版的WebLogic Domain Docker镜像。现在我们将运行WebLogic Admin Server容器。使用 docker run 命令来运行:

$ docker run -d samplewls:12.1.3
6c53e54e2605191e1823736fe2b0819d4e68c93eb988d74be773b1514f0e5663

注意,那个 -d 选项表示在后台运行容器并返回容器ID。

例子中使用的Dockerfiles定义 startWebLogic.sh 为默认的CMD。这是用来启动WebLogic Admin Server的命令。

你可以使用 docker logs 命令以容器id最为参数来检查WebLogic Admin Server进程的STUOUT:

docker logs &lt;container_id>

为了以后使用并远程服务器上运行容器或者如果你想本地运行但是在你的电脑上绑定端口,你需要为Admin Server暴露端口和IP地址,因为你经常需要于Docker进行交互。你可以通过 docker inspect 命令来获得运行中的容器的IP地址信息:

$ docker run -d -p 8001:8001 --name=wlsadmin samplewls:12.1.3 startWebLogic.sh
$ docker inspect &lt;container_id> | grep &quot;IPAddress&quot;
&quot;IPAddress&quot;: &quot;XXX.XX.XX.XX&quot;,

希云( https://csphere.c n) 和您分享的这篇文章是关于如何将WebLogic Server运行于Docker容器的简单介绍。我们希望本文对于那些没有任何Docker容器使用经验并且想要尝试着将WebLogic运行于Docker的开发者有用。

Docker技术如何落地企业带来价值

希云是Docker领域的专家,致力于通过Docker技术提供更好的云计算产品和服务。希云品牌下的产品包括了

  • COS容器操作系统
  • cSphere容器管理平台
  • CDT基于容器的开发测试平台
  • CShow基于容器的项目演示平台-
  • CHub企业版Registry

并提供相关的培训和咨询服务

  • 微镜像服务
  • Docker企业培训
  • 应用Docker化咨询
  • 软件SaaS化咨询
  • PaaS化咨询

欢迎企业垂询:

  • 电话:400-686-1560
  • 邮箱: contactus@csphere.cn

微信关注cSphere-CN

回复数字“1”即可查看【Docker持续部署图文详解】

回复数字“2”即可查看【初识Docker和Windows Server容器】

回复数字“3”即可查看【为Windows创建Node.js容器镜像】

回复数字“4”即可查看【使用Docker-in-Docker来运行CI或集成测试环境?三思】

如何将WebLogic服务器运行于Docker容器中

转载声明

尊重知识,请必须全文转载,不得删改,包括本行。

正文到此结束
Loading...