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/

相關文章
相關標籤/搜索