利用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后成功開啟調試。

相關鏈接


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM