zoukankan      html  css  js  c++  java
  • 利用Docker手动构建WebLogic镜像的步骤

    info

    我的Docker环境信息如下:

    [root@localhost ~]# docker info -f  "
    OSType:
        {{.OperatingSystem}} {{.Architecture}} {{.KernelVersion}}
    
    DockerVersion:
        {{.ServerVersion}}
        
    Mirrors:   {{range .RegistryConfig.Mirrors}}
        {{.}}{{end}}"
    
    OSType:
        CentOS Linux 7 (Core) x86_64 3.10.0-957.21.3.el7.x86_64
    DockerVersion:
        19.03.8
    Mirrors: 
        http://ovfftd6p.mirror.aliyuncs.com/
        http://registry.docker-cn.com/
        http://docker.mirrors.ustc.edu.cn/
        http://hub-mirror.c.163.com/
    

    Docker安装

    # 依赖
    yum install -y yum-utils device-mapper-persistent-data  lvm2
    
    # 添加仓库
    yum-config-manager  --add-repo   https: //download.docker.com/linux/centos/docker-ce.repo 594  yum-config-manager --enable docker-ce-nightly
    yum-config-manager --enable docker-ce-test
    yum-config-manager --disable docker-ce-nightly
    
    # 安装
    yum -y install docker-ce docker-ce-cli containerd.io
    

    在dockerhub中寻找Weblogic镜像成品

    在下搭这个环境只是为了调试,没想搞这么麻烦,所以有成品最好,在dockerhub中找到两个下载量比较多的,第一个是官方的:

    但是可惜了,镜像太大了,一个也没有下载成功,都是到一半就卡住不动了,只能自己制作一个了。

    官方有构建Weblogic镜像的Dockerfile以及一些说明:点击查看

    这里贴一下官方的文档:

    全英文的,写的也不算很详细吧,下面就通过这个文档来手动构建一下。

    构建JAVA-8镜像

    因为Weblogic基于Java,所以需要用JDK,上面文档中说使用../OracleJava/java-8可以构建出JDK镜像,这里如果可以直接命令docker pull store/oracle/serverjre:8把做好的镜像脱下来就不用这么麻烦了。

    如果和我一样,下载不下载成品,只能手动构造了。oracle/docker-images这个仓库里包含了oracle提供的所有产品Dockerfile,没必要全git clone下来,推荐使用downgit工具把java-8weblogic目录下下来即可。

    然后这是后面构建weblogic的时候才知道的事情,需要在Dockerfile中找到对应JDK安装包的文件名,然后到官网或别的地方去下载同名的包,和Dockerfile放到同级目录下。

    这里使用的server-jre-8u241-linux-x64.tar.gz: 下载地址

    然后执行build.sh构建,一般不会出什么问题。

    或者将Dockerfile的内容复制出来,在Linux中新建一个同名的文件,把内容复制进去,然后当前目录执行docker build -t oracle/serverjre:8 .也可以构建出来。

    下载Weblogic二进制包

    傻傻的试了半天buildDockerImage.sh,结果一直报错checksum什么的,看了一遍脚本内容还有重新看了一遍上面的英文README才发现需要自己去下载weblogic安装包,附上下载地址

    weblogic会有3个分支版本:developergenericinfrastructure,在./dockerfiles/12.2.1.3/目录下从文件后缀可以看出对应的Dockerfile文件,例如generic对应Dockerfile.generic

    没细研究它们的区别,简单看了一下generic比较全,带示例什么的,大小800Mdeveloper小很多,只有231M,试了一下网速跑满了,就把两个都下载下来构建了一遍。

    将下载下来的文件,不需要解压,放到和对应版本的Dockerfile文件同级目录下。

    构建Weblogic12镜像

    我的目标版本是12.2.1.3 generic,所以使用sh buildDockerImage.sh -v 12.2.1.3 -b
    脚本本身没有什么问题,但是到Percent Complete这里一直报错,总是到40%进程就挂掉了,这里试了很多次,发现到40%的时候电脑风扇呼呼的,看了一下内存占用大概知道为什么了,我的虚拟机分配内存只有512M,尝试扩到2G,构建weblogic镜像顺利完成。

    运行使用

    以前没接触过这个中间件,所以不太了解怎么使用。直接docker run -d oracle/weblogic之后发现并不能将其运行起来。

    又研究了一下README后发现运行需要基于已经有的oracle/weblogic:12.2.1.3-generic再构建一个实例镜像,官方提供了一些sample,我选择的是12213-domain,其他的也试了试,没能构建成功。

    因为我这里想用generic版本,所以需要改一下示例目录的Dockerfile文件:

    构建命令:docker build -f Dockerfile -t 12213-weblogic-domain-in-volume .

    在制作容器运行之前,需要修改properties目录里的两个配置文件,重要的信息已经用红圈标注了,需要注意的是DOMAIN_HOST_VOLUME指定的目录需要在本机存在,该目录会映射容器内示例目录到本地,ADMIN_HOST指定容器名称。

    然后修改run_admin_server.sh可以构造并运行一个名为weblogic的容器,此时如果防火墙没有限制的话,访问http://your-ip:7001/console应该OK了。

    开启调试端口

    上面的脚本默认不会启动weblogic的调试端口8453,为了之后的测试,这里尝试开启。
    首先,将前面创建的容器删除docker stop weblogic && docker container rm weblogic
    然后修改示例目录12213-domainrun_admin_server.sh的最后一行,将8453端口映射出来。

    然后,尝试连接一下nc -v your-ip 8453,如果提示connected就可以了,如果不行则继续执行以下步骤。

    前面将容器中的示例目录映射到了本地,在本地/root/domain下可以找到base_domain目录,目录结构如下:

    修改bin/setDomainEnv.sh,找到最合适的地方,如何判断最合适,一句话就是最先使用debugFlag之前给debugFlag赋值之后,加上一句exoprt debugFlag="true"

    然后重启容器docker restart weblogic后成功开启调试。

    相关链接

  • 相关阅读:
    关于跨域名访问,反向代理系列话题集锦
    中国B2C电子商务最新发展状况调查分析(转)
    顶部导航条(Top Navigation Bar)_Yahoo_Pattern(翻译)
    google,百度,yahoo,msn,ASK网址登录和网站地图提交地址
    如何安装PE到硬盘(包括移动硬盘)分区
    ASP.NET SQL 注入免费解决方案
    O2O循环圈
    B2C暴利行业之保健品行业
    在SQLserver2005中如何对运行慢的查询进行分析?
    互联网产品设计之需求管理
  • 原文地址:https://www.cnblogs.com/lxmwb/p/12578952.html
Copyright © 2011-2022 走看看