Docker 安装 weblogic12c

    首先,系统(3.8以上内核的linux)中安装好 Docker 这个运用程序。因为网络缘由,咱们下载一个Docker官方的镜像须要很长的时间,甚至下载失败。为此,阿里云容器镜像服务提供了官方的镜像站点,从而加速官方镜像的下载速度。 [ 不会的能够参考我以前的文章:Docker <一> 架构简介与Linux上安装 http://www.javashuo.com/article/p-qdsjcbsd-bh.html]。java

1、Docker pull 方式安装 weblogic12c

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

# docker search weblogic 
docker search weblogic 


# docker search wls 
docker search wls

    能够看到下图所示的信息:linux

        

        

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

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

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

    若见下图证实pull成功。   github

        

        

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

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

docker images

        

     三、使用 docker run 启动

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

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

   

一、进入%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文件覆盖原来的。



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

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

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

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

四、 从新启动服务器后,就可使用用户weblogic登陆管理控制台了

    五、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;

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

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

四个步骤便可:

 

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

 

二、修改内存大小

默认的内存配置为:

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

 

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

 

四、从新访问web应用,测试成功。


五、升级 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位置路径这一个步骤能够省略

 

    

 

 

2、Dockerfile 方式安装 weblogic12c

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

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

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

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

          

        

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

        

    在构建以前,选择要构建映像的版本和分发版本,而后下载所需的软件包(请参阅.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

 

 

 

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

 

 

 

 

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

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

相关文章
相关标签/搜索