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

相关链接

利用Docker手动构建WebLogic镜像的步骤的更多相关文章

  1. 9. 利用Docker快速构建MGR | 深入浅出MGR

    目录 1.安装Docker 2.拉取GreatSQL镜像,并创建容器 2.1 拉取镜像 2.2 创建新容器 2.3 容器管理 3.构建MGR集群 3.1 创建专用子网 3.2 创建3个新容器 3.3 ...

  2. Docker commit 制作weblogic镜像

    第一:前提条件 1.本机必须已经安装了docker 容器 2.pull 一个基础的镜像  如图:rastasheep/ubuntu-sshd 第二:利用docker commit  命令 将容器的状态 ...

  3. Docker | dockerfile构建centos镜像,以及CMD和ENTRYPOINT的区别

    构建自己的centos镜像 docker pull centos下载下来的镜像都是基础版本,缺少很多常用的命令功能,比如:ll.vim等等, 下面介绍制作一个功能较全的自己的centos镜像. 步骤 ...

  4. 如何利用docker快速构建MySQL主从复制环境

    在学习MySQL的过程中,常常会测试各种参数的作用.这时候,就需要快速构建出MySQL实例,甚至主从. 考虑如下场景: 譬如我想测试mysqldump在指定--single-transaction参数 ...

  5. Docker手动配置Lamp镜像

    自从接了学长布置的任务,自学Docker也学了很久了,先整一个Lamp出来吧 在Docker Hub上找了很多Lamp的镜像 网上都说tutum的镜像做的还是不错的 试试 折腾了一上午无果... 算了 ...

  6. 利用docker搭建本地私有镜像仓库

    主机名 角色 sht-sgmhadoopcm-01 Docker Repository sht-sgmhadoopnn-01 Docker Client 1. 在两台节点分别安装docker http ...

  7. 利用webpack手动构建vue工程

    一 创建一个文件夹,在文件夹中打开命令行执行:$npm install 创建一个package文件 ,可以先忽略作者等信息: 二 安装webpack依赖包(根据需要安装)     //全局安装     ...

  8. Docker | 第五章:构建自定义镜像

    前言 上一章节,主要是介绍了下Dockerfile的一些常用命令的说明.我们知道,利用Dockerfile可以构建一个新的镜像,比如运行Java环境,就需要一个JDK环境的镜像,但直接使用公共的镜像时 ...

  9. 添加ssh服务构建新镜像-docker commit 方式01

    添加ssh服务构建新镜像-docker commit 方式 1:docker commit构建自定义镜像---一般不推荐使用这种方式构建新镜像 1:ubuntu基础镜像下载 ubuntu@ubuntu ...

随机推荐

  1. Redis报错Can't save in background: fork: Cannot allocate memory及类似问题的处理方法

    问题的发现及解决过程: 1.Redis主从复制(一主一从)环境在客户端用命令查看主从状态 在slave上输入命令显示如下: 在master上输入命令显示如下: 从显示可以看出主从关系出现问题,然后查看 ...

  2. 玩转UITableView

    UITableView这个iOS开发中永远绕不开的UIView,那么就不可避免的要在多个页面多种场景下反复摩擦UITableView,就算是刚跳进火坑不久的iOS Developer也知道实现UITa ...

  3. sql问题处理

    批量杀死MySQL连接 select concat('KILL ',id,';') from information_schema.processlist where Info like 'selec ...

  4. python语法生成器、迭代器、闭包、装饰器总结

    1.生成器 生成器的创建方法: (1)通过列表生成式创建 可以通过将列表生成式的[]改成() eg: # 列表生成式 L = [ x*2 for x in range(5)] # L = [0, 2, ...

  5. 从赴美IPO绝迹 看那些烧成泡沫的互联网企业

    曾经,赴美上市是很多中国企业的终极梦想.然而在当下,随着中概股在美国股市股价的不断走低.中国赴美上市企业私有化速度的加快,大众才发现,原来美国股市并不是那么好混的.但不管怎样,赴美上市始终是一种荣耀. ...

  6. 【RxJava Demo分析】(二)Schedulers线程调度器 · Hans Zone

    用Schedulers(调度器)实现多任务(并发,Concurrency)的例子 废话不多说我们看一下有关于RxJava的代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...

  7. ip修改成域名

    将ip修改成域名,这样的话可以使程序变得更加健壮,别人不能直接看见你的ip地址. 后来总结下分享给大家.首先找到hosts文件的位置,这个文件是系统dns默认查找的文件. windows 系统:C:\ ...

  8. list转map,set,使用stream进行转化

    #list转map,set,使用stream进行转化 函数式编程: 场景: 从数据库中取出来的数据,经常是list集合类型,但是list转map这种场景虽然不常见,但是有时候也会遇到,最常见的还是转为 ...

  9. tomcat&servlet初记

    tomcat&servlet初记 1. web相关概念 2. web服务器软件的学习:tomcat 3. servlet入门学习 web相关概念 1,软件架构 1,cs架构:客户端/服务器端 ...

  10. 压力测试(六)-阿里云Linux服务器压测接口实战

    1.SpringBoot 接口打包,并用jar包方式部署 简介:用jar包方式在控制台进行启动 打包 mvn package && java -jar target/gs-spring ...