Docker 安装 weblogic12c

    首先,系统(3.8以上内核的linux)中安装好 Docker 这个运用程序。由于网络原因,我们下载一个Docker官方的镜像需要很长的时间,甚至下载失败。为此,阿里云容器镜像服务提供了官方的镜像站点,从而加速官方镜像的下载速度。 [ 不会的可以参考我之前的文章:Docker <一> 架构简介与Linux上安装 https://my.oschina.net/u/3375733/blog/1582281]。

一、Docker pull 方式安装 weblogic12c

    1、查看docker仓库中的 weblogic12c 命令

# docker search weblogic 
docker search weblogic 


# docker search wls 
docker search wls 

    可以看到下图所示的信息:

        164626_ngQh_3375733.png

        164547_D8gy_3375733.png

    2、为选定需要pull到系统中的数据库镜像

# pull 镜像
 docker pull -a radudobrinescu/wls12c:5.0

    整个pull过程需要花费一些时间,耐心等待。

    若见下图证明pull成功。   

        174455_WsZ2_3375733.png

        174542_S2vZ_3375733.png

    3、使用 docker images 命令即可列出已下载的镜像

# 使用 docker images 命令即可列出已下载的镜像

docker images

        175740_98WR_3375733.png

     3、使用 docker run 启动

# 普通新建并启动
docker run --name weblogic12c7099 -it -p 7099:7001 radudobrinescu/wls12c:5.0 

    4、忘记访问控制台的用户名或者密码,可通过以下步骤来重置用户名密码

   

1、进入%DOMAIN_HOME%/security目录,执行下列命令:

java -classpath C:\Oracle\Middleware\Oracle_Home\wlserver\server\lib\weblogic.jar
 weblogic.security.utils.AdminAccount <NewAdminUserName> <NewAdminPassword> .

# 本次实际路径是:
java -classpath /oracle/fmwhome/wls12c/wlserver/server/lib/weblogic.jar 
 weblogic.security.utils.AdminAccount weblogic weblogic1 .

# 注意:上一段命令包含6个空格,后面weblogic是用户名,weblogic101是密码,weblogic控制密码长度和复杂性。
#           特别注意最后有个“ .”,一个空格和一个点。
# 此命令将生成新的DefaultAuthenticatorInit.ldift文件覆盖原来的。



2、进入管理服务器的AdminServer目录,如:%DOMAIN_HOME%/servers/AdminServer。将其中的data目录重命名,
如:data_old。

本次是:
/oracle/fmwhome/domains/WLS12_on_Docker/servers/AdminServer
将data文件夹重命名为data_old。

3、 修改管理服务器的boot.properties文件,如:%DOMAIN_HOME%/servers/AdminServer/security /boot.properties,修改其中的用户名与密码(用明文,第一次启动服务器时明文将被加密),要和上面命令
中的用户名密码一致。

例:修改后:
username=weblogic
password=weblogic1

4、 重新启动服务器后,就可以使用用户weblogic登录管理控制台了

    5、weblogic 12c 配置jvm的内存大小

每个weblogic server 都是运行在一个java虚拟机上 ,对weblogic的内存设置也就是对java虚拟机的内存设置。


MEM_ARGS=-Xms512m -Xmx1024m -XX:MaxPermSize=128m

-Xms512m表示jvm内存下限为512m 

-Xmx512m表示jvm内存上限为1024m 

-XX:MaxPermSize=128m表示永久内存为128m 

 

我们主要设置的为jvm内存,永久内存设置为128m或者256m即可。

设置jvm内存时,根据经验32位机器最大可启动1.8G内存的jvm,64位机器最大可启动3G内存的jvm;

而在设置上下限的时候最好将两者设为一致,以避免浪费频繁的申请和释放内存的开销。 

-------------------------------------------------------------------------------------------------

四个步骤即可:

 

1、打开setDomainEnv.sh文件,该文件的路径位于:
 /weblogic/user_projects/domains/你的服务器域名/bin/setDomainEnv.sh

 

2、修改内存大小

默认的内存配置为:

if [ "${JAVA_VENDOR}" = "Sun" ] ; then
  WLS_MEM_ARGS_64BIT="-Xms256m -Xmx512m"  //64位
  export WLS_MEM_ARGS_64BIT
  WLS_MEM_ARGS_32BIT="-Xms256m -Xmx512m"  //32位
  export WLS_MEM_ARGS_32BIT
else
  WLS_MEM_ARGS_64BIT="-Xms512m -Xmx512m"
  export WLS_MEM_ARGS_64BIT
  WLS_MEM_ARGS_32BIT="-Xms512m -Xmx512m"
  export WLS_MEM_ARGS_32BIT
fi

增加内存大小后:

if [ "${JAVA_VENDOR}" = "Sun" ] ; then
  WLS_MEM_ARGS_64BIT="-Xms512m -Xmx1024m"  //64位
  export WLS_MEM_ARGS_64BIT
  WLS_MEM_ARGS_32BIT="-Xms512m -Xmx1024m"  //32位
  export WLS_MEM_ARGS_32BIT
else
  WLS_MEM_ARGS_64BIT="-Xms512m -Xmx1024m"
  export WLS_MEM_ARGS_64BIT
  WLS_MEM_ARGS_32BIT="-Xms512m -Xmx1024m"
  export WLS_MEM_ARGS_32BIT
fi

 

3、保存修改后的文件,重启weblogic。

 

4、重新访问web应用,测试成功。


5、升级 weblogic2c 的 jdk 运行环境
# 配置新JDK
# vi ~/.bash_profile
# export JAVA_HOME=/home/oracle/jdk8
# export JRE_HOME=/home/oracle/jdk8/jre
# export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
# export PATH=$JAVA_HOME/bin:$PATH

vi /oracle/fmwhome/domains/WLS12_on_Docker/bin/setDomainEnv.cmd
set SUN_JAVA_HOME=/home/oracle/jdk8
set DEFAULT_SUN_JAVA_HOME=/home/oracle/jdk8
set JAVA_HOME=/home/oracle/jdk8
注意:/home/oracle/jdk8 这是我本机的jdk 位置,要根据您服务器的jdk选择具体目录

如果你在安装weblogic的时候,选择了本地安装的jdk位置路径这一个步骤可以省略


 

    

 

 

二、Dockerfile 方式安装 weblogic12c

     1、构建Oracle JDK(服务器JRE)基础映像

    首先,必须先下载Oracle Server JRE二进制文件../OracleJava/java-8并放入文件夹并构建该映像(https://github.com/oracle/docker-images/tree/master/OracleJava)。


    $ cd ../OracleJava/java-8
    $ sh build.sh

    ·  GitHub : https://github.com/oracle/docker-images/tree/master/OracleJava

          113348_aiHi_3375733.png

        114218_cqOV_3375733.png

    2、构建WebLogic Docker安装映像
    重要提示:必须下载WebLogic的二进制.download文件并将其放在适当位置(请参阅dockerfiles /中的文件):https://github.com/oracle/docker-images/tree/master/OracleWebLogic/dockerfiles

        115616_UDau_3375733.png

    在构建之前,选择要构建映像的版本和分发版本,然后下载所需的软件包(请参阅.download文件:https://github.com/oracle/docker-images/tree/master/OracleWebLogic/dockerfiles/12.2.1),并将其放入您选择的分发版本的文件夹中。然后进入dockerfiles文件夹并以root身份运行buildDockerImage.sh脚本。

$ sh buildDockerImage.sh -h
    Usage: buildDockerImage.sh -v [version] [-d | -g | -i] [-s]
    Builds a Docker Image for Oracle WebLogic.
      
    Parameters:
       -v: version to build. Required.
       Choose one of: 12.1.3  12.2.1  
       -d: creates image based on 'developer' distribution
       -g: creates image based on 'generic' distribution
       -i: creates image based on 'infrastructure' distribution
       -c: enables Docker image layer cache during build
       -s: skips the MD5 check of packages
    
    * select one distribution only: -d, -g, or -i
    
    LICENSE UPL 1.0
    
    Copyright (c) 2014-2015 Oracle and/or its affiliates. All rights reserved.

 

    buildDockerImage.sh 文件内容如下:

#!/bin/bash
# 
# Since: October, 2014
# Author: bruno.borges@oracle.com
# Description: script to build a Docker image for WebLogic
# 
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
# 
# Copyright (c) 2014-2015 Oracle and/or its affiliates. All rights reserved.
# 

usage() {
cat << EOF
Usage: buildDockerImage.sh -v [version] [-d | -g | -i] [-s] [-c]
Builds a Docker Image for Oracle WebLogic.
  
Parameters:
   -v: version to build. Required.
       Choose one of: $(for i in $(ls -d */); do echo -n "${i%%/}  "; done)
   -d: creates image based on 'developer' distribution
   -g: creates image based on 'generic' distribution
   -i: creates image based on 'infrastructure' distribution
   -c: enables Docker image layer cache during build
   -s: skips the MD5 check of packages
* select one distribution only: -d, -g, or -i
LICENSE UPL 1.0
Copyright (c) 2014-2015 Oracle and/or its affiliates. All rights reserved.
EOF
exit 0
}

# Validate packages
checksumPackages() {
  echo "Checking if required packages are present and valid..."
  md5sum -c Checksum.$DISTRIBUTION
  if [ "$?" -ne 0 ]; then
    echo "MD5 for required packages to build this image did not match!"
    echo "Make sure to download missing files in folder $VERSION. See *.download files for more information"
    exit $?
  fi
}

if [ "$#" -eq 0 ]; then usage; fi

# Parameters
DEVELOPER=0
GENERIC=0
INFRASTRUCTURE=0
VERSION="12.2.1"
SKIPMD5=0
NOCACHE=true
while getopts "hcsdgiv:" optname; do
  case "$optname" in
    "h")
      usage
      ;;
    "s")
      SKIPMD5=1
      ;;
    "d")
      DEVELOPER=1
      ;;
    "g")
      GENERIC=1
      ;;
    "i")
      INFRASTRUCTURE=1
      ;;
    "v")
      VERSION="$OPTARG"
      ;;
    "c")
      NOCACHE=false
      ;;
    *)
    # Should not occur
      echo "Unknown error while processing options inside buildDockerImage.sh"
      ;;
  esac
done

# Which distribution to use?
if [ $((DEVELOPER + GENERIC + INFRASTRUCTURE)) -gt 1 ]; then
  usage
elif [ $DEVELOPER -eq 1 ]; then
  DISTRIBUTION="developer"
elif [ $GENERIC -eq 1 ]; then
  DISTRIBUTION="generic"
elif [ $INFRASTRUCTURE -eq 1 ] && [ "$VERSION" = "12.1.3" ]; then
  echo "Version 12.1.3 does not have infrastructure distribution available."
  exit 1
else
  DISTRIBUTION="infrastructure"
fi

# WebLogic Image Name
IMAGE_NAME="oracle/weblogic:$VERSION-$DISTRIBUTION"

# Go into version folder
cd $VERSION

if [ ! "$SKIPMD5" -eq 1 ]; then
  checksumPackages
else
  echo "Skipped MD5 checksum."
fi

echo "====================="

# Proxy settings
PROXY_SETTINGS=""
if [ "${http_proxy}" != "" ]; then
  PROXY_SETTINGS="$PROXY_SETTINGS --build-arg http_proxy=${http_proxy}"
fi

if [ "${https_proxy}" != "" ]; then
  PROXY_SETTINGS="$PROXY_SETTINGS --build-arg https_proxy=${https_proxy}"
fi

if [ "${ftp_proxy}" != "" ]; then
  PROXY_SETTINGS="$PROXY_SETTINGS --build-arg ftp_proxy=${ftp_proxy}"
fi

if [ "${no_proxy}" != "" ]; then
  PROXY_SETTINGS="$PROXY_SETTINGS --build-arg no_proxy=${no_proxy}"
fi

if [ "$PROXY_SETTINGS" != "" ]; then
  echo "Proxy settings were found and will be used during build."
fi

# ################## #
# BUILDING THE IMAGE #
# ################## #
echo "Building image '$IMAGE_NAME' ..."

# BUILD THE IMAGE (replace all environment variables)
BUILD_START=$(date '+%s')
docker build --force-rm=$NOCACHE --no-cache=$NOCACHE $PROXY_SETTINGS -t $IMAGE_NAME -f Dockerfile.$DISTRIBUTION . || {
  echo "There was an error building the image."
  exit 1
}
BUILD_END=$(date '+%s')
BUILD_ELAPSED=`expr $BUILD_END - $BUILD_START`

echo ""

if [ $? -eq 0 ]; then
cat << EOF
  WebLogic Docker Image for '$DISTRIBUTION' version $VERSION is ready to be extended: 
    
    --> $IMAGE_NAME
  Build completed in $BUILD_ELAPSED seconds.
EOF
else
  echo "WebLogic Docker Image was NOT successfully created. Check the output and correct any reported problems with the docker build operation."
fi

 

 

 

三、使用 Docker Compose 轻松高效管理容器

 

 

 

 

本文为博主原创文章,转载请注明出处!

https://my.oschina.net/u/3375733/blog/

转载于:https://my.oschina.net/u/3375733/blog/1592245

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值