利用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-8
和weblogic
目录下下来即可。
然后这是后面构建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个分支版本:developer
、generic
、infrastructure
,在./dockerfiles/12.2.1.3/
目录下从文件后缀可以看出对应的Dockerfile
文件,例如generic
对应Dockerfile.generic
。
没细研究它们的区别,简单看了一下generic
比较全,带示例什么的,大小800M
,developer
小很多,只有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-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
后成功开启调试。
相关链接
利用Docker手动构建WebLogic镜像的步骤的更多相关文章
- 9. 利用Docker快速构建MGR | 深入浅出MGR
目录 1.安装Docker 2.拉取GreatSQL镜像,并创建容器 2.1 拉取镜像 2.2 创建新容器 2.3 容器管理 3.构建MGR集群 3.1 创建专用子网 3.2 创建3个新容器 3.3 ...
- Docker commit 制作weblogic镜像
第一:前提条件 1.本机必须已经安装了docker 容器 2.pull 一个基础的镜像 如图:rastasheep/ubuntu-sshd 第二:利用docker commit 命令 将容器的状态 ...
- Docker | dockerfile构建centos镜像,以及CMD和ENTRYPOINT的区别
构建自己的centos镜像 docker pull centos下载下来的镜像都是基础版本,缺少很多常用的命令功能,比如:ll.vim等等, 下面介绍制作一个功能较全的自己的centos镜像. 步骤 ...
- 如何利用docker快速构建MySQL主从复制环境
在学习MySQL的过程中,常常会测试各种参数的作用.这时候,就需要快速构建出MySQL实例,甚至主从. 考虑如下场景: 譬如我想测试mysqldump在指定--single-transaction参数 ...
- Docker手动配置Lamp镜像
自从接了学长布置的任务,自学Docker也学了很久了,先整一个Lamp出来吧 在Docker Hub上找了很多Lamp的镜像 网上都说tutum的镜像做的还是不错的 试试 折腾了一上午无果... 算了 ...
- 利用docker搭建本地私有镜像仓库
主机名 角色 sht-sgmhadoopcm-01 Docker Repository sht-sgmhadoopnn-01 Docker Client 1. 在两台节点分别安装docker http ...
- 利用webpack手动构建vue工程
一 创建一个文件夹,在文件夹中打开命令行执行:$npm install 创建一个package文件 ,可以先忽略作者等信息: 二 安装webpack依赖包(根据需要安装) //全局安装 ...
- Docker | 第五章:构建自定义镜像
前言 上一章节,主要是介绍了下Dockerfile的一些常用命令的说明.我们知道,利用Dockerfile可以构建一个新的镜像,比如运行Java环境,就需要一个JDK环境的镜像,但直接使用公共的镜像时 ...
- 添加ssh服务构建新镜像-docker commit 方式01
添加ssh服务构建新镜像-docker commit 方式 1:docker commit构建自定义镜像---一般不推荐使用这种方式构建新镜像 1:ubuntu基础镜像下载 ubuntu@ubuntu ...
随机推荐
- 基于OpenDDS应用程序开发(3)订阅端实现
连续的三篇博文演示如何基于OpenDDS开发应用程序,将数据从发布端节点发送到订阅端节点,该示例程序由一个发布者发布数据,一个订阅者订阅数据,使用默认的QoS策略和TCP/IP传输方式. 本文是第三篇 ...
- 在python中连接mysql数据库,并进行增删改查
数据库在开发过程中是最常见的,基本上在服务端的编程过程中都会使用到,mysql是较常见的一种数据库,这里介绍python如果连接到数据库中,并对数据库进行增删改查. 安装mysql的python扩展 ...
- 中文字体压缩器-解决css引入的字体太大的问题
字蛛是一个中文字体压缩器 官方网站:http://font-spider.org/index.html 用于解决页面引入的css字体过大的问题 使用方法: npm i -g font-spider 在 ...
- loadrunner通过socket测接口
#include "lrs.h" Action() { //建立到服务端的连接 lrs_create_socket("socket1",&quo ...
- 解密JDK8 枚举
写一个枚举类 1 2 3 4 5 6 public enum Season { SPRING, SUMMER, AUTUMN, WINTER } 然后我们使用javac编译上面的类,得到class文件 ...
- 名企6年Java程序员的工作感悟,送给迷茫的你
程序员从开始选择到坚持下去,工作了六年对一个程序员意味什么?在职位上:高级开发工程师?架构师?技术经理?or ... ?在能力上:各种编码无压力?核心代码无压力?平台架构无压力? or ... fuc ...
- 2018 C笔试题
⼀.单项选择题(15⼩题,每⼩题2分,共30分) 解析:[传值调用],实参和形参之间传递的是“地址” 解析:[优先级]:算术运算符 > 关系运算符 > 赋值运算符 [结核性 ...
- Go语言基础篇(1) —— 编写第一个Go程序
创建文件hello_world.go package main //包,表名代码所在的包 import "fmt" //引入依赖 //main方法 func main(){ fmt ...
- C++冒险攻略(持续更新中。。。)
C++语言程序设计 我的C++冒险之旅 绪论 计算机系统基本概念 计算机硬件 计算机程序语言 计算机解决问题是程序控制的 程序就是操作步骤 程序要使用语言来表达 机器语言 计算机能识别的是机器语言 机 ...
- 使用R进行空间自相关检验
「全局溢出」当一个区域的特征变化影响到所有区域的结果时,就会产生全局溢出效应.这甚至适用于区域本身,因为影响可以传递到邻居并返回到自己的区域(反馈).具体来说,全球溢出效应影响到邻居.邻居到邻居.邻居 ...