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后成功开启调试。

    相关链接

  • 相关阅读:
    ionic localstorage
    angular 中文鏈接
    把jqmobi 變成jQuery 的插件 從此使用jQuery
    jqmobi 的一些設置
    ionic ngcordova map 地圖
    ionic pull to refresh 下拉更新頁面
    json 對象的序列化
    鍵盤彈出,頁面佈局被推上去了.....
    Cordova V3.0.0中config.xml配置文件的iOS Configuration
    android ios 只能輸入數字 不能輸入小數點的 函數 cordova
  • 原文地址:https://www.cnblogs.com/lxmwb/p/12578952.html
Copyright © 2011-2022 走看看