个人Docker
环境信息以下:html
[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/
# 依赖 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中找到两个下载量比较多的,第一个是官方的:
可是惋惜了,镜像太大了,一个也没有下载成功,都是到一半就卡住不动了,只能本身制做一个了。java
官方有构建Weblogic
镜像的Dockerfile
以及一些说明:点击查看。linux
这里贴一下官方的文档:
全英文的,写的也不算很详细吧,下面就经过这个文档来手动构建一下。git
由于Weblogic
基于Java
,因此须要用JDK
,上面文档中说使用../OracleJava/java-8能够构建出JDK
镜像,这里若是能够直接命令docker pull store/oracle/serverjre:8
把作好的镜像脱下来就不用这么麻烦了。github
若是和我同样,下载不下载成品,只能手动构造了。oracle/docker-images这个仓库里包含了oracle
提供的全部产品Dockerfile
,不必全git clone
下来,推荐使用downgit工具把java-8
和weblogic
目录下下来便可。web
而后这是后面构建weblogic
的时候才知道的事情,须要在Dockerfile
中找到对应JDK
安装包的文件名,而后到官网或别的地方去下载同名的包,和Dockerfile
放到同级目录下。docker
这里使用的
server-jre-8u241-linux-x64.tar.gz
: 下载地址shell
而后执行build.sh
构建,通常不会出什么问题。centos
或者将Dockerfile
的内容复制出来,在Linux
中新建一个同名的文件,把内容复制进去,而后当前目录执行docker build -t oracle/serverjre:8 .
也能够构建出来。oracle
傻傻的试了半天buildDockerImage.sh
,结果一直报错checksum
什么的,看了一遍脚本内容还有从新看了一遍上面的英文README
才发现须要本身去下载weblogic
安装包,附上下载地址。
weblogic
会有3个分支版本:developer
、generic
、infrastructure
,在./dockerfiles/12.2.1.3/
目录下从文件后缀能够看出对应的Dockerfile
文件,例如generic
对应Dockerfile.generic
。
没细研究它们的区别,简单看了一下generic
比较全,带示例什么的,大小800M
,developer
小不少,只有231M
,试了一下网速跑满了,就把两个都下载下来构建了一遍。
将下载下来的文件,不须要解压,放到和对应版本的Dockerfile
文件同级目录下。
个人目标版本是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-domain
中run_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
后成功开启调试。